Convert ConversationModel tests to TypeScript
This commit is contained in:
parent
3dd850b9b8
commit
4cd3da8f5b
3 changed files with 54 additions and 45 deletions
|
@ -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>
|
||||||
|
|
|
@ -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 => {
|
||||||
|
|
|
@ -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: [],
|
||||||
});
|
});
|
||||||
|
|
Loading…
Add table
Reference in a new issue