Convert ConversationModel tests to TypeScript

This commit is contained in:
Evan Hahn 2021-07-02 15:40:36 -05:00 committed by GitHub
parent 3dd850b9b8
commit 4cd3da8f5b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 54 additions and 45 deletions

View file

@ -408,8 +408,6 @@
<script type="text/javascript" src="views/whisper_view_test.js"></script> <script type="text/javascript" src="views/whisper_view_test.js"></script>
<script type="text/javascript" src="views/list_view_test.js"></script> <script type="text/javascript" src="views/list_view_test.js"></script>
<script type="text/javascript" src="models/conversations_test.js"></script>
<script type="text/javascript" src="libphonenumber_util_test.js"></script> <script type="text/javascript" src="libphonenumber_util_test.js"></script>
<script type="text/javascript" src="keychange_listener_test.js"></script> <script type="text/javascript" src="keychange_listener_test.js"></script>
<script type="text/javascript" src="reliable_trigger_test.js"></script> <script type="text/javascript" src="reliable_trigger_test.js"></script>

View file

@ -1,4 +1,4 @@
// Copyright 2017-2020 Signal Messenger, LLC // Copyright 2017-2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only // SPDX-License-Identifier: AGPL-3.0-only
/* global ConversationController, SignalProtocolStore, Whisper */ /* global ConversationController, SignalProtocolStore, Whisper */
@ -10,37 +10,38 @@ describe('KeyChangeListener', () => {
const newKey = window.Signal.Crypto.getRandomBytes(33); const newKey = window.Signal.Crypto.getRandomBytes(33);
let store; let store;
let convo;
beforeEach(async () => { beforeEach(async () => {
window.ConversationController.reset();
await window.ConversationController.load();
await window.ConversationController.loadPromise();
convo = window.ConversationController.dangerouslyCreateAndAdd({
id: phoneNumberWithKeyChange,
type: 'private',
});
await window.Signal.Data.saveConversation(convo.attributes);
store = new SignalProtocolStore(); store = new SignalProtocolStore();
await store.hydrateCaches(); await store.hydrateCaches();
Whisper.KeyChangeListener.init(store); Whisper.KeyChangeListener.init(store);
return store.saveIdentity(addressString, oldKey); return store.saveIdentity(addressString, oldKey);
}); });
afterEach(() => { afterEach(async () => {
return store.removeIdentityKey(phoneNumberWithKeyChange); await window.Signal.Data.removeAllMessagesInConversation(convo.id, {
logId: phoneNumberWithKeyChange,
MessageCollection: Whisper.MessageCollection,
});
await window.Signal.Data.removeConversation(convo.id, {
Conversation: Whisper.Conversation,
});
await store.removeIdentityKey(phoneNumberWithKeyChange);
}); });
describe('When we have a conversation with this contact', () => { describe('When we have a conversation with this contact', () => {
let convo;
before(async () => {
convo = ConversationController.dangerouslyCreateAndAdd({
id: phoneNumberWithKeyChange,
type: 'private',
});
await window.Signal.Data.saveConversation(convo.attributes);
});
after(async () => {
await window.Signal.Data.removeAllMessagesInConversation(convo.id, {
logId: phoneNumberWithKeyChange,
MessageCollection: Whisper.MessageCollection,
});
await window.Signal.Data.removeConversation(convo.id, {
Conversation: Whisper.Conversation,
});
});
it('generates a key change notice in the private conversation with this contact', done => { it('generates a key change notice in the private conversation with this contact', done => {
const original = convo.addKeyChange; const original = convo.addKeyChange;
convo.addKeyChange = keyChangedId => { convo.addKeyChange = keyChangedId => {
@ -54,21 +55,17 @@ describe('KeyChangeListener', () => {
describe('When we have a group with this contact', () => { describe('When we have a group with this contact', () => {
let groupConvo; let groupConvo;
let convo;
before(async () => { beforeEach(async () => {
convo = ConversationController.dangerouslyCreateAndAdd({
id: phoneNumberWithKeyChange,
type: 'private',
});
groupConvo = ConversationController.dangerouslyCreateAndAdd({ groupConvo = ConversationController.dangerouslyCreateAndAdd({
id: 'groupId', id: 'groupId',
type: 'group', type: 'group',
members: [convo.id], members: [convo.id],
}); });
await window.Signal.Data.saveConversation(convo.attributes);
await window.Signal.Data.saveConversation(groupConvo.attributes); await window.Signal.Data.saveConversation(groupConvo.attributes);
}); });
after(async () => {
afterEach(async () => {
await window.Signal.Data.removeAllMessagesInConversation(groupConvo.id, { await window.Signal.Data.removeAllMessagesInConversation(groupConvo.id, {
logId: phoneNumberWithKeyChange, logId: phoneNumberWithKeyChange,
MessageCollection: Whisper.MessageCollection, MessageCollection: Whisper.MessageCollection,
@ -76,9 +73,6 @@ describe('KeyChangeListener', () => {
await window.Signal.Data.removeConversation(groupConvo.id, { await window.Signal.Data.removeConversation(groupConvo.id, {
Conversation: Whisper.Conversation, Conversation: Whisper.Conversation,
}); });
await window.Signal.Data.removeConversation(convo.id, {
Conversation: Whisper.Conversation,
});
}); });
it('generates a key change notice in the group conversation with this contact', done => { it('generates a key change notice in the group conversation with this contact', done => {

View file

@ -1,7 +1,18 @@
// Copyright 2014-2020 Signal Messenger, LLC // Copyright 2014-2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only // SPDX-License-Identifier: AGPL-3.0-only
import { assert } from 'chai';
describe('Conversations', () => { describe('Conversations', () => {
async function resetConversationController(): Promise<void> {
window.ConversationController.reset();
await window.ConversationController.load();
}
beforeEach(resetConversationController);
afterEach(resetConversationController);
it('updates lastMessage even in race conditions with db', async () => { it('updates lastMessage even in race conditions with db', async () => {
const ourNumber = '+15550000000'; const ourNumber = '+15550000000';
const ourUuid = window.getGuid(); const ourUuid = window.getGuid();
@ -12,6 +23,14 @@ describe('Conversations', () => {
e164: '+15551234567', e164: '+15551234567',
uuid: '2f2734aa-f69d-4c1c-98eb-50eb0fc512d7', uuid: '2f2734aa-f69d-4c1c-98eb-50eb0fc512d7',
type: 'private', type: 'private',
inbox_position: 0,
isPinned: false,
markedUnread: false,
lastMessageDeletedForEveryone: false,
messageCount: 0,
sentMessageCount: 0,
profileSharing: true,
version: 0,
}); });
const destinationE164 = '+15557654321'; const destinationE164 = '+15557654321';
@ -21,7 +40,7 @@ describe('Conversations', () => {
'my device' 'my device'
); );
window.textsecure.storage.user.setUuidAndDeviceId(ourUuid, 2); window.textsecure.storage.user.setUuidAndDeviceId(ourUuid, 2);
window.ConversationController._initialFetchComplete = true; await window.ConversationController.loadPromise();
// Creating a fake message // Creating a fake message
const now = Date.now(); const now = Date.now();
@ -33,9 +52,9 @@ describe('Conversations', () => {
delivered_to: [destinationE164], delivered_to: [destinationE164],
destination: destinationE164, destination: destinationE164,
expirationStartTimestamp: now, expirationStartTimestamp: now,
hasAttachments: 0, hasAttachments: false,
hasFileAttachments: 0, hasFileAttachments: false,
hasVisualMediaAttachments: 0, hasVisualMediaAttachments: false,
id: 'd8f2b435-e2ef-46e0-8481-07e68af251c6', id: 'd8f2b435-e2ef-46e0-8481-07e68af251c6',
received_at: now, received_at: now,
recipients: [destinationE164], recipients: [destinationE164],
@ -52,9 +71,7 @@ describe('Conversations', () => {
Message: window.Whisper.Message, Message: window.Whisper.Message,
}); });
message = window.MessageController.register(message.id, message); message = window.MessageController.register(message.id, message);
await window.Signal.Data.saveConversation(conversation.attributes, { await window.Signal.Data.saveConversation(conversation.attributes);
Conversation: window.Whisper.Conversation,
});
await conversation.updateLastMessage(); await conversation.updateLastMessage();
// Should be set to bananas because that's the last message sent. // Should be set to bananas because that's the last message sent.
@ -66,9 +83,9 @@ describe('Conversations', () => {
body: '', body: '',
bodyRanges: undefined, bodyRanges: undefined,
attachments: [], attachments: [],
quote: null, quote: undefined,
contact: [], contact: [],
sticker: null, sticker: undefined,
preview: [], preview: [],
}); });