Introduce Service Id Types
Co-authored-by: Scott Nonnenberg <scott@signal.org>
This commit is contained in:
parent
414c0a58d3
commit
366b875fd2
269 changed files with 5832 additions and 5550 deletions
|
@ -2,10 +2,10 @@
|
|||
// SPDX-License-Identifier: AGPL-3.0-only
|
||||
|
||||
import { assert } from 'chai';
|
||||
import { v4 as generateUuid } from 'uuid';
|
||||
|
||||
import dataInterface from '../../sql/Client';
|
||||
import { UUID } from '../../types/UUID';
|
||||
import type { UUIDStringType } from '../../types/UUID';
|
||||
import { generateAci } from '../../types/ServiceId';
|
||||
|
||||
import type { MessageAttributesType } from '../../model-types.d';
|
||||
|
||||
|
@ -17,10 +17,6 @@ const {
|
|||
getMessagesWithFileAttachments,
|
||||
} = dataInterface;
|
||||
|
||||
function getUuid(): UUIDStringType {
|
||||
return UUID.generate().toString();
|
||||
}
|
||||
|
||||
describe('sql/allMedia', () => {
|
||||
beforeEach(async () => {
|
||||
await removeAll();
|
||||
|
@ -31,10 +27,10 @@ describe('sql/allMedia', () => {
|
|||
assert.lengthOf(await _getAllMessages(), 0);
|
||||
|
||||
const now = Date.now();
|
||||
const conversationId = getUuid();
|
||||
const ourUuid = getUuid();
|
||||
const conversationId = generateUuid();
|
||||
const ourAci = generateAci();
|
||||
const message1: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'message 1',
|
||||
type: 'outgoing',
|
||||
conversationId,
|
||||
|
@ -44,7 +40,7 @@ describe('sql/allMedia', () => {
|
|||
hasVisualMediaAttachments: true,
|
||||
};
|
||||
const message2: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'message 2',
|
||||
type: 'outgoing',
|
||||
conversationId,
|
||||
|
@ -53,10 +49,10 @@ describe('sql/allMedia', () => {
|
|||
timestamp: now - 10,
|
||||
};
|
||||
const message3: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'message 3',
|
||||
type: 'outgoing',
|
||||
conversationId: getUuid(),
|
||||
conversationId: generateUuid(),
|
||||
sent_at: now,
|
||||
received_at: now,
|
||||
timestamp: now,
|
||||
|
@ -65,7 +61,7 @@ describe('sql/allMedia', () => {
|
|||
|
||||
await saveMessages([message1, message2, message3], {
|
||||
forceSave: true,
|
||||
ourUuid,
|
||||
ourAci,
|
||||
});
|
||||
|
||||
assert.lengthOf(await _getAllMessages(), 3);
|
||||
|
@ -82,10 +78,10 @@ describe('sql/allMedia', () => {
|
|||
assert.lengthOf(await _getAllMessages(), 0);
|
||||
|
||||
const now = Date.now();
|
||||
const conversationId = getUuid();
|
||||
const ourUuid = getUuid();
|
||||
const conversationId = generateUuid();
|
||||
const ourAci = generateAci();
|
||||
const message1: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'message 1',
|
||||
type: 'outgoing',
|
||||
conversationId,
|
||||
|
@ -95,31 +91,31 @@ describe('sql/allMedia', () => {
|
|||
hasVisualMediaAttachments: true,
|
||||
};
|
||||
const message2: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'message 2',
|
||||
type: 'outgoing',
|
||||
conversationId,
|
||||
sent_at: now - 10,
|
||||
received_at: now - 10,
|
||||
timestamp: now - 10,
|
||||
storyId: getUuid(),
|
||||
storyId: generateUuid(),
|
||||
hasVisualMediaAttachments: true,
|
||||
};
|
||||
const message3: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'message 3',
|
||||
type: 'story',
|
||||
conversationId,
|
||||
sent_at: now,
|
||||
received_at: now,
|
||||
timestamp: now,
|
||||
storyId: getUuid(),
|
||||
storyId: generateUuid(),
|
||||
hasVisualMediaAttachments: true,
|
||||
};
|
||||
|
||||
await saveMessages([message1, message2, message3], {
|
||||
forceSave: true,
|
||||
ourUuid,
|
||||
ourAci,
|
||||
});
|
||||
|
||||
assert.lengthOf(await _getAllMessages(), 3);
|
||||
|
@ -138,10 +134,10 @@ describe('sql/allMedia', () => {
|
|||
assert.lengthOf(await _getAllMessages(), 0);
|
||||
|
||||
const now = Date.now();
|
||||
const conversationId = getUuid();
|
||||
const ourUuid = getUuid();
|
||||
const conversationId = generateUuid();
|
||||
const ourAci = generateAci();
|
||||
const message1: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'message 1',
|
||||
type: 'outgoing',
|
||||
conversationId,
|
||||
|
@ -151,7 +147,7 @@ describe('sql/allMedia', () => {
|
|||
hasFileAttachments: true,
|
||||
};
|
||||
const message2: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'message 2',
|
||||
type: 'outgoing',
|
||||
conversationId,
|
||||
|
@ -160,10 +156,10 @@ describe('sql/allMedia', () => {
|
|||
timestamp: now - 10,
|
||||
};
|
||||
const message3: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'message 3',
|
||||
type: 'outgoing',
|
||||
conversationId: getUuid(),
|
||||
conversationId: generateUuid(),
|
||||
sent_at: now,
|
||||
received_at: now,
|
||||
timestamp: now,
|
||||
|
@ -172,7 +168,7 @@ describe('sql/allMedia', () => {
|
|||
|
||||
await saveMessages([message1, message2, message3], {
|
||||
forceSave: true,
|
||||
ourUuid,
|
||||
ourAci,
|
||||
});
|
||||
|
||||
assert.lengthOf(await _getAllMessages(), 3);
|
||||
|
@ -189,10 +185,10 @@ describe('sql/allMedia', () => {
|
|||
assert.lengthOf(await _getAllMessages(), 0);
|
||||
|
||||
const now = Date.now();
|
||||
const conversationId = getUuid();
|
||||
const ourUuid = getUuid();
|
||||
const conversationId = generateUuid();
|
||||
const ourAci = generateAci();
|
||||
const message1: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'message 1',
|
||||
type: 'outgoing',
|
||||
conversationId,
|
||||
|
@ -202,31 +198,31 @@ describe('sql/allMedia', () => {
|
|||
hasFileAttachments: true,
|
||||
};
|
||||
const message2: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'message 2',
|
||||
type: 'outgoing',
|
||||
conversationId,
|
||||
sent_at: now - 10,
|
||||
received_at: now - 10,
|
||||
timestamp: now - 10,
|
||||
storyId: getUuid(),
|
||||
storyId: generateUuid(),
|
||||
hasFileAttachments: true,
|
||||
};
|
||||
const message3: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'message 3',
|
||||
type: 'story',
|
||||
conversationId,
|
||||
sent_at: now,
|
||||
received_at: now,
|
||||
timestamp: now,
|
||||
storyId: getUuid(),
|
||||
storyId: generateUuid(),
|
||||
hasFileAttachments: true,
|
||||
};
|
||||
|
||||
await saveMessages([message1, message2, message3], {
|
||||
forceSave: true,
|
||||
ourUuid,
|
||||
ourAci,
|
||||
});
|
||||
|
||||
assert.lengthOf(await _getAllMessages(), 3);
|
||||
|
|
|
@ -2,10 +2,10 @@
|
|||
// SPDX-License-Identifier: AGPL-3.0-only
|
||||
|
||||
import { assert } from 'chai';
|
||||
import { v4 as generateUuid } from 'uuid';
|
||||
|
||||
import dataInterface from '../../sql/Client';
|
||||
import { UUID } from '../../types/UUID';
|
||||
import type { UUIDStringType } from '../../types/UUID';
|
||||
import { generateAci } from '../../types/ServiceId';
|
||||
import { DurationInSeconds } from '../../util/durations';
|
||||
|
||||
import type { MessageAttributesType } from '../../model-types.d';
|
||||
|
@ -17,10 +17,6 @@ const {
|
|||
getConversationMessageStats,
|
||||
} = dataInterface;
|
||||
|
||||
function getUuid(): UUIDStringType {
|
||||
return UUID.generate().toString();
|
||||
}
|
||||
|
||||
describe('sql/conversationSummary', () => {
|
||||
beforeEach(async () => {
|
||||
await removeAll();
|
||||
|
@ -31,10 +27,10 @@ describe('sql/conversationSummary', () => {
|
|||
assert.lengthOf(await _getAllMessages(), 0);
|
||||
|
||||
const now = Date.now();
|
||||
const conversationId = getUuid();
|
||||
const ourUuid = getUuid();
|
||||
const conversationId = generateUuid();
|
||||
const ourAci = generateAci();
|
||||
const message1: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'message 1',
|
||||
type: 'outgoing',
|
||||
conversationId,
|
||||
|
@ -43,7 +39,7 @@ describe('sql/conversationSummary', () => {
|
|||
timestamp: now + 1,
|
||||
};
|
||||
const message2: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'message 2',
|
||||
type: 'outgoing',
|
||||
conversationId,
|
||||
|
@ -52,10 +48,10 @@ describe('sql/conversationSummary', () => {
|
|||
timestamp: now + 2,
|
||||
};
|
||||
const message3: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'message 3',
|
||||
type: 'outgoing',
|
||||
conversationId: getUuid(),
|
||||
conversationId: generateUuid(),
|
||||
sent_at: now + 3,
|
||||
received_at: now + 3,
|
||||
timestamp: now + 3,
|
||||
|
@ -63,14 +59,13 @@ describe('sql/conversationSummary', () => {
|
|||
|
||||
await saveMessages([message1, message2, message3], {
|
||||
forceSave: true,
|
||||
ourUuid,
|
||||
ourAci,
|
||||
});
|
||||
|
||||
assert.lengthOf(await _getAllMessages(), 3);
|
||||
|
||||
const messages = await getConversationMessageStats({
|
||||
conversationId,
|
||||
ourUuid,
|
||||
includeStoryReplies: false,
|
||||
});
|
||||
|
||||
|
@ -83,10 +78,10 @@ describe('sql/conversationSummary', () => {
|
|||
assert.lengthOf(await _getAllMessages(), 0);
|
||||
|
||||
const now = Date.now();
|
||||
const conversationId = getUuid();
|
||||
const ourUuid = getUuid();
|
||||
const conversationId = generateUuid();
|
||||
const ourAci = generateAci();
|
||||
const message1: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'message 1',
|
||||
type: 'outgoing',
|
||||
conversationId,
|
||||
|
@ -95,29 +90,29 @@ describe('sql/conversationSummary', () => {
|
|||
timestamp: now + 1,
|
||||
};
|
||||
const message2: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'message 2',
|
||||
type: 'outgoing',
|
||||
conversationId,
|
||||
sent_at: now + 2,
|
||||
received_at: now + 2,
|
||||
timestamp: now + 2,
|
||||
storyId: getUuid(),
|
||||
storyId: generateUuid(),
|
||||
};
|
||||
const message3: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'message 3',
|
||||
type: 'incoming',
|
||||
conversationId,
|
||||
sent_at: now + 3,
|
||||
received_at: now + 3,
|
||||
timestamp: now + 3,
|
||||
storyId: getUuid(),
|
||||
storyId: generateUuid(),
|
||||
};
|
||||
|
||||
await saveMessages([message1, message2, message3], {
|
||||
forceSave: true,
|
||||
ourUuid,
|
||||
ourAci,
|
||||
});
|
||||
|
||||
assert.lengthOf(await _getAllMessages(), 3);
|
||||
|
@ -125,7 +120,6 @@ describe('sql/conversationSummary', () => {
|
|||
const messages = await getConversationMessageStats({
|
||||
conversationId,
|
||||
includeStoryReplies: false,
|
||||
ourUuid,
|
||||
});
|
||||
|
||||
assert.strictEqual(messages.activity?.body, message1.body, 'activity');
|
||||
|
@ -137,10 +131,10 @@ describe('sql/conversationSummary', () => {
|
|||
assert.lengthOf(await _getAllMessages(), 0);
|
||||
|
||||
const now = Date.now();
|
||||
const conversationId = getUuid();
|
||||
const ourUuid = getUuid();
|
||||
const conversationId = generateUuid();
|
||||
const ourAci = generateAci();
|
||||
const message1: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'message 1',
|
||||
// @ts-expect-error We're forcing a null type here for testing
|
||||
type: null,
|
||||
|
@ -150,7 +144,7 @@ describe('sql/conversationSummary', () => {
|
|||
timestamp: now + 1,
|
||||
};
|
||||
const message2: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'message 2',
|
||||
type: 'change-number-notification',
|
||||
conversationId,
|
||||
|
@ -159,7 +153,7 @@ describe('sql/conversationSummary', () => {
|
|||
timestamp: now + 2,
|
||||
};
|
||||
const message3: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'message 3',
|
||||
type: 'group-v1-migration',
|
||||
conversationId,
|
||||
|
@ -168,7 +162,7 @@ describe('sql/conversationSummary', () => {
|
|||
timestamp: now + 3,
|
||||
};
|
||||
const message4: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'message 5',
|
||||
type: 'profile-change',
|
||||
conversationId,
|
||||
|
@ -177,7 +171,7 @@ describe('sql/conversationSummary', () => {
|
|||
timestamp: now + 5,
|
||||
};
|
||||
const message5: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'message 6',
|
||||
type: 'story',
|
||||
conversationId,
|
||||
|
@ -186,7 +180,7 @@ describe('sql/conversationSummary', () => {
|
|||
timestamp: now + 6,
|
||||
};
|
||||
const message6: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'message 7',
|
||||
type: 'universal-timer-notification',
|
||||
conversationId,
|
||||
|
@ -195,7 +189,7 @@ describe('sql/conversationSummary', () => {
|
|||
timestamp: now + 7,
|
||||
};
|
||||
const message7: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'message 8',
|
||||
type: 'verified-change',
|
||||
conversationId,
|
||||
|
@ -208,7 +202,7 @@ describe('sql/conversationSummary', () => {
|
|||
[message1, message2, message3, message4, message5, message6, message7],
|
||||
{
|
||||
forceSave: true,
|
||||
ourUuid,
|
||||
ourAci,
|
||||
}
|
||||
);
|
||||
|
||||
|
@ -216,7 +210,6 @@ describe('sql/conversationSummary', () => {
|
|||
|
||||
const messages = await getConversationMessageStats({
|
||||
conversationId,
|
||||
ourUuid,
|
||||
includeStoryReplies: false,
|
||||
});
|
||||
|
||||
|
@ -227,10 +220,10 @@ describe('sql/conversationSummary', () => {
|
|||
assert.lengthOf(await _getAllMessages(), 0);
|
||||
|
||||
const now = Date.now();
|
||||
const conversationId = getUuid();
|
||||
const ourUuid = getUuid();
|
||||
const conversationId = generateUuid();
|
||||
const ourAci = generateAci();
|
||||
const message1: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'message 1',
|
||||
// @ts-expect-error We're forcing a null type here for testing
|
||||
type: null,
|
||||
|
@ -240,7 +233,7 @@ describe('sql/conversationSummary', () => {
|
|||
timestamp: now + 1,
|
||||
};
|
||||
const message2: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'message 2',
|
||||
type: 'change-number-notification',
|
||||
conversationId,
|
||||
|
@ -249,7 +242,7 @@ describe('sql/conversationSummary', () => {
|
|||
timestamp: now + 2,
|
||||
};
|
||||
const message3: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'message 3',
|
||||
type: 'group-v1-migration',
|
||||
conversationId,
|
||||
|
@ -258,7 +251,7 @@ describe('sql/conversationSummary', () => {
|
|||
timestamp: now + 3,
|
||||
};
|
||||
const message4: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'message 4',
|
||||
type: 'keychange',
|
||||
conversationId,
|
||||
|
@ -267,7 +260,7 @@ describe('sql/conversationSummary', () => {
|
|||
timestamp: now + 4,
|
||||
};
|
||||
const message5: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'message 6',
|
||||
type: 'profile-change',
|
||||
conversationId,
|
||||
|
@ -276,7 +269,7 @@ describe('sql/conversationSummary', () => {
|
|||
timestamp: now + 6,
|
||||
};
|
||||
const message6: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'message 7',
|
||||
type: 'story',
|
||||
conversationId,
|
||||
|
@ -285,7 +278,7 @@ describe('sql/conversationSummary', () => {
|
|||
timestamp: now + 7,
|
||||
};
|
||||
const message7: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'message 8',
|
||||
type: 'universal-timer-notification',
|
||||
conversationId,
|
||||
|
@ -294,7 +287,7 @@ describe('sql/conversationSummary', () => {
|
|||
timestamp: now + 8,
|
||||
};
|
||||
const message8: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'message 9',
|
||||
type: 'verified-change',
|
||||
conversationId,
|
||||
|
@ -316,7 +309,7 @@ describe('sql/conversationSummary', () => {
|
|||
],
|
||||
{
|
||||
forceSave: true,
|
||||
ourUuid,
|
||||
ourAci,
|
||||
}
|
||||
);
|
||||
|
||||
|
@ -324,7 +317,6 @@ describe('sql/conversationSummary', () => {
|
|||
|
||||
const messages = await getConversationMessageStats({
|
||||
conversationId,
|
||||
ourUuid,
|
||||
includeStoryReplies: false,
|
||||
});
|
||||
|
||||
|
@ -335,10 +327,10 @@ describe('sql/conversationSummary', () => {
|
|||
assert.lengthOf(await _getAllMessages(), 0);
|
||||
|
||||
const now = Date.now();
|
||||
const conversationId = getUuid();
|
||||
const ourUuid = getUuid();
|
||||
const conversationId = generateUuid();
|
||||
const ourAci = generateAci();
|
||||
const message1: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'message 1',
|
||||
type: 'outgoing',
|
||||
conversationId,
|
||||
|
@ -351,7 +343,7 @@ describe('sql/conversationSummary', () => {
|
|||
timestamp: now + 1,
|
||||
};
|
||||
const message2: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'message 2',
|
||||
type: 'outgoing',
|
||||
conversationId,
|
||||
|
@ -366,14 +358,13 @@ describe('sql/conversationSummary', () => {
|
|||
|
||||
await saveMessages([message1, message2], {
|
||||
forceSave: true,
|
||||
ourUuid,
|
||||
ourAci,
|
||||
});
|
||||
|
||||
assert.lengthOf(await _getAllMessages(), 2);
|
||||
|
||||
const messages = await getConversationMessageStats({
|
||||
conversationId,
|
||||
ourUuid,
|
||||
includeStoryReplies: false,
|
||||
});
|
||||
|
||||
|
@ -384,10 +375,10 @@ describe('sql/conversationSummary', () => {
|
|||
assert.lengthOf(await _getAllMessages(), 0);
|
||||
|
||||
const now = Date.now();
|
||||
const conversationId = getUuid();
|
||||
const ourUuid = getUuid();
|
||||
const conversationId = generateUuid();
|
||||
const ourAci = generateAci();
|
||||
const message1: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'message 1',
|
||||
type: 'outgoing',
|
||||
conversationId,
|
||||
|
@ -401,7 +392,7 @@ describe('sql/conversationSummary', () => {
|
|||
timestamp: now + 1,
|
||||
};
|
||||
const message2: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'message 2',
|
||||
type: 'outgoing',
|
||||
conversationId,
|
||||
|
@ -416,14 +407,13 @@ describe('sql/conversationSummary', () => {
|
|||
|
||||
await saveMessages([message1, message2], {
|
||||
forceSave: true,
|
||||
ourUuid,
|
||||
ourAci,
|
||||
});
|
||||
|
||||
assert.lengthOf(await _getAllMessages(), 2);
|
||||
|
||||
const messages = await getConversationMessageStats({
|
||||
conversationId,
|
||||
ourUuid,
|
||||
includeStoryReplies: false,
|
||||
});
|
||||
|
||||
|
@ -434,10 +424,10 @@ describe('sql/conversationSummary', () => {
|
|||
assert.lengthOf(await _getAllMessages(), 0);
|
||||
|
||||
const now = Date.now();
|
||||
const conversationId = getUuid();
|
||||
const ourUuid = getUuid();
|
||||
const conversationId = generateUuid();
|
||||
const ourAci = generateAci();
|
||||
const message1: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'message 1',
|
||||
type: 'outgoing',
|
||||
conversationId,
|
||||
|
@ -446,7 +436,7 @@ describe('sql/conversationSummary', () => {
|
|||
timestamp: now + 1,
|
||||
};
|
||||
const message2: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'message 2',
|
||||
type: 'outgoing',
|
||||
conversationId,
|
||||
|
@ -459,14 +449,13 @@ describe('sql/conversationSummary', () => {
|
|||
|
||||
await saveMessages([message1, message2], {
|
||||
forceSave: true,
|
||||
ourUuid,
|
||||
ourAci,
|
||||
});
|
||||
|
||||
assert.lengthOf(await _getAllMessages(), 2);
|
||||
|
||||
const messages = await getConversationMessageStats({
|
||||
conversationId,
|
||||
ourUuid,
|
||||
includeStoryReplies: false,
|
||||
});
|
||||
|
||||
|
@ -477,10 +466,10 @@ describe('sql/conversationSummary', () => {
|
|||
assert.lengthOf(await _getAllMessages(), 0);
|
||||
|
||||
const now = Date.now();
|
||||
const conversationId = getUuid();
|
||||
const ourUuid = getUuid();
|
||||
const conversationId = generateUuid();
|
||||
const ourAci = generateAci();
|
||||
const message1: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'message 1',
|
||||
type: 'outgoing',
|
||||
conversationId,
|
||||
|
@ -491,7 +480,7 @@ describe('sql/conversationSummary', () => {
|
|||
timestamp: now + 1,
|
||||
};
|
||||
const message2: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'message 2',
|
||||
type: 'outgoing',
|
||||
conversationId,
|
||||
|
@ -504,14 +493,13 @@ describe('sql/conversationSummary', () => {
|
|||
|
||||
await saveMessages([message1, message2], {
|
||||
forceSave: true,
|
||||
ourUuid,
|
||||
ourAci,
|
||||
});
|
||||
|
||||
assert.lengthOf(await _getAllMessages(), 2);
|
||||
|
||||
const messages = await getConversationMessageStats({
|
||||
conversationId,
|
||||
ourUuid,
|
||||
includeStoryReplies: false,
|
||||
});
|
||||
|
||||
|
@ -522,20 +510,20 @@ describe('sql/conversationSummary', () => {
|
|||
assert.lengthOf(await _getAllMessages(), 0);
|
||||
|
||||
const now = Date.now();
|
||||
const conversationId = getUuid();
|
||||
const otherUuid = getUuid();
|
||||
const ourUuid = getUuid();
|
||||
const conversationId = generateUuid();
|
||||
const otherServiceId = generateAci();
|
||||
const ourAci = generateAci();
|
||||
const message1: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'message 1 - removing ourselves',
|
||||
type: 'group-v2-change',
|
||||
conversationId,
|
||||
groupV2Change: {
|
||||
from: ourUuid,
|
||||
from: ourAci,
|
||||
details: [
|
||||
{
|
||||
type: 'member-remove',
|
||||
uuid: ourUuid,
|
||||
uuid: ourAci,
|
||||
},
|
||||
],
|
||||
},
|
||||
|
@ -544,16 +532,16 @@ describe('sql/conversationSummary', () => {
|
|||
timestamp: now + 1,
|
||||
};
|
||||
const message2: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'message 2 - someone else leaving',
|
||||
type: 'group-v2-change',
|
||||
conversationId,
|
||||
groupV2Change: {
|
||||
from: otherUuid,
|
||||
from: otherServiceId,
|
||||
details: [
|
||||
{
|
||||
type: 'member-remove',
|
||||
uuid: otherUuid,
|
||||
uuid: otherServiceId,
|
||||
},
|
||||
],
|
||||
},
|
||||
|
@ -564,14 +552,13 @@ describe('sql/conversationSummary', () => {
|
|||
|
||||
await saveMessages([message1, message2], {
|
||||
forceSave: true,
|
||||
ourUuid,
|
||||
ourAci,
|
||||
});
|
||||
|
||||
assert.lengthOf(await _getAllMessages(), 2);
|
||||
|
||||
const messages = await getConversationMessageStats({
|
||||
conversationId,
|
||||
ourUuid,
|
||||
includeStoryReplies: false,
|
||||
});
|
||||
|
||||
|
|
|
@ -2,10 +2,10 @@
|
|||
// SPDX-License-Identifier: AGPL-3.0-only
|
||||
|
||||
import { assert } from 'chai';
|
||||
import { v4 as generateUuid } from 'uuid';
|
||||
|
||||
import dataInterface from '../../sql/Client';
|
||||
import { UUID } from '../../types/UUID';
|
||||
import type { UUIDStringType } from '../../types/UUID';
|
||||
import { generateAci } from '../../types/ServiceId';
|
||||
|
||||
import type { MessageAttributesType } from '../../model-types.d';
|
||||
|
||||
|
@ -17,10 +17,6 @@ const {
|
|||
searchMessages,
|
||||
} = dataInterface;
|
||||
|
||||
function getUuid(): UUIDStringType {
|
||||
return UUID.generate().toString();
|
||||
}
|
||||
|
||||
describe('sql/searchMessages', () => {
|
||||
beforeEach(async () => {
|
||||
await removeAll();
|
||||
|
@ -30,10 +26,10 @@ describe('sql/searchMessages', () => {
|
|||
assert.lengthOf(await _getAllMessages(), 0);
|
||||
|
||||
const now = Date.now();
|
||||
const conversationId = getUuid();
|
||||
const ourUuid = getUuid();
|
||||
const conversationId = generateUuid();
|
||||
const ourAci = generateAci();
|
||||
const message1: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'message 1 - generic string',
|
||||
type: 'outgoing',
|
||||
conversationId,
|
||||
|
@ -42,7 +38,7 @@ describe('sql/searchMessages', () => {
|
|||
timestamp: now - 20,
|
||||
};
|
||||
const message2: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'message 2 - unique string',
|
||||
type: 'outgoing',
|
||||
conversationId,
|
||||
|
@ -51,7 +47,7 @@ describe('sql/searchMessages', () => {
|
|||
timestamp: now - 10,
|
||||
};
|
||||
const message3: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'message 3 - generic string',
|
||||
type: 'outgoing',
|
||||
conversationId,
|
||||
|
@ -62,7 +58,7 @@ describe('sql/searchMessages', () => {
|
|||
|
||||
await saveMessages([message1, message2, message3], {
|
||||
forceSave: true,
|
||||
ourUuid,
|
||||
ourAci,
|
||||
});
|
||||
|
||||
assert.lengthOf(await _getAllMessages(), 3);
|
||||
|
@ -72,7 +68,7 @@ describe('sql/searchMessages', () => {
|
|||
assert.strictEqual(searchResults[0].id, message2.id);
|
||||
|
||||
message3.body = 'message 3 - unique string';
|
||||
await saveMessage(message3, { ourUuid });
|
||||
await saveMessage(message3, { ourAci });
|
||||
|
||||
const searchResults2 = await searchMessages({ query: 'unique' });
|
||||
assert.lengthOf(searchResults2, 2);
|
||||
|
@ -84,10 +80,10 @@ describe('sql/searchMessages', () => {
|
|||
assert.lengthOf(await _getAllMessages(), 0);
|
||||
|
||||
const now = Date.now();
|
||||
const conversationId = getUuid();
|
||||
const ourUuid = getUuid();
|
||||
const conversationId = generateUuid();
|
||||
const ourAci = generateAci();
|
||||
const message1: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'message 1 - unique string',
|
||||
type: 'outgoing',
|
||||
conversationId,
|
||||
|
@ -96,7 +92,7 @@ describe('sql/searchMessages', () => {
|
|||
timestamp: now - 20,
|
||||
};
|
||||
const message2: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'message 2 - unique string',
|
||||
type: 'outgoing',
|
||||
conversationId,
|
||||
|
@ -106,7 +102,7 @@ describe('sql/searchMessages', () => {
|
|||
isViewOnce: true,
|
||||
};
|
||||
const message3: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'message 3 - generic string',
|
||||
type: 'outgoing',
|
||||
conversationId,
|
||||
|
@ -118,7 +114,7 @@ describe('sql/searchMessages', () => {
|
|||
|
||||
await saveMessages([message1, message2, message3], {
|
||||
forceSave: true,
|
||||
ourUuid,
|
||||
ourAci,
|
||||
});
|
||||
|
||||
assert.lengthOf(await _getAllMessages(), 3);
|
||||
|
@ -128,7 +124,7 @@ describe('sql/searchMessages', () => {
|
|||
assert.strictEqual(searchResults[0].id, message1.id);
|
||||
|
||||
message1.body = 'message 3 - unique string';
|
||||
await saveMessage(message3, { ourUuid });
|
||||
await saveMessage(message3, { ourAci });
|
||||
|
||||
const searchResults2 = await searchMessages({ query: 'unique' });
|
||||
assert.lengthOf(searchResults2, 1);
|
||||
|
@ -139,10 +135,10 @@ describe('sql/searchMessages', () => {
|
|||
assert.lengthOf(await _getAllMessages(), 0);
|
||||
|
||||
const now = Date.now();
|
||||
const conversationId = getUuid();
|
||||
const ourUuid = getUuid();
|
||||
const conversationId = generateUuid();
|
||||
const ourAci = generateAci();
|
||||
const message1: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'message 1 - unique string',
|
||||
type: 'outgoing',
|
||||
conversationId,
|
||||
|
@ -151,29 +147,29 @@ describe('sql/searchMessages', () => {
|
|||
timestamp: now - 20,
|
||||
};
|
||||
const message2: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'message 2 - unique string',
|
||||
type: 'outgoing',
|
||||
conversationId,
|
||||
sent_at: now - 10,
|
||||
received_at: now - 10,
|
||||
timestamp: now - 10,
|
||||
storyId: getUuid(),
|
||||
storyId: generateUuid(),
|
||||
};
|
||||
const message3: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'message 3 - generic string',
|
||||
type: 'outgoing',
|
||||
conversationId,
|
||||
sent_at: now,
|
||||
received_at: now,
|
||||
timestamp: now,
|
||||
storyId: getUuid(),
|
||||
storyId: generateUuid(),
|
||||
};
|
||||
|
||||
await saveMessages([message1, message2, message3], {
|
||||
forceSave: true,
|
||||
ourUuid,
|
||||
ourAci,
|
||||
});
|
||||
|
||||
assert.lengthOf(await _getAllMessages(), 3);
|
||||
|
@ -183,7 +179,7 @@ describe('sql/searchMessages', () => {
|
|||
assert.strictEqual(searchResults[0].id, message1.id);
|
||||
|
||||
message1.body = 'message 3 - unique string';
|
||||
await saveMessage(message3, { ourUuid });
|
||||
await saveMessage(message3, { ourAci });
|
||||
|
||||
const searchResults2 = await searchMessages({ query: 'unique' });
|
||||
assert.lengthOf(searchResults2, 1);
|
||||
|
@ -194,12 +190,12 @@ describe('sql/searchMessages', () => {
|
|||
assert.lengthOf(await _getAllMessages(), 0);
|
||||
|
||||
const now = Date.now();
|
||||
const conversationId = getUuid();
|
||||
const otherConversationId = getUuid();
|
||||
const ourUuid = getUuid();
|
||||
const conversationId = generateUuid();
|
||||
const otherConversationId = generateUuid();
|
||||
const ourAci = generateAci();
|
||||
|
||||
const message1: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'message 1 - unique string',
|
||||
type: 'outgoing',
|
||||
conversationId,
|
||||
|
@ -208,7 +204,7 @@ describe('sql/searchMessages', () => {
|
|||
timestamp: now - 20,
|
||||
};
|
||||
const message2: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'message 2 - unique string',
|
||||
type: 'outgoing',
|
||||
conversationId: otherConversationId,
|
||||
|
@ -219,7 +215,7 @@ describe('sql/searchMessages', () => {
|
|||
|
||||
await saveMessages([message1, message2], {
|
||||
forceSave: true,
|
||||
ourUuid,
|
||||
ourAci,
|
||||
});
|
||||
|
||||
assert.lengthOf(await _getAllMessages(), 2);
|
||||
|
@ -240,32 +236,32 @@ describe('sql/searchMessages/withMentions', () => {
|
|||
beforeEach(async () => {
|
||||
await removeAll();
|
||||
});
|
||||
const ourUuid = getUuid();
|
||||
const ourAci = generateAci();
|
||||
async function storeMessages(
|
||||
messageOverrides: Array<Partial<MessageAttributesType>>
|
||||
) {
|
||||
const now = Date.now();
|
||||
const messages: Array<MessageAttributesType> = messageOverrides.map(
|
||||
(overrides, idx) => ({
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: ' ',
|
||||
type: 'incoming',
|
||||
sent_at: now - idx,
|
||||
received_at: now - idx,
|
||||
timestamp: now - idx,
|
||||
conversationId: getUuid(),
|
||||
conversationId: generateUuid(),
|
||||
...overrides,
|
||||
})
|
||||
);
|
||||
await saveMessages(messages, {
|
||||
forceSave: true,
|
||||
ourUuid,
|
||||
ourAci,
|
||||
});
|
||||
return messages;
|
||||
}
|
||||
|
||||
it('includes messages with mentions', async () => {
|
||||
const mentionedUuids = [getUuid(), getUuid()];
|
||||
const mentionedUuids = [generateAci(), generateAci()];
|
||||
const messages = await storeMessages([
|
||||
{
|
||||
bodyRanges: [{ start: 0, length: 1, mentionUuid: mentionedUuids[0] }],
|
||||
|
@ -284,7 +280,7 @@ describe('sql/searchMessages/withMentions', () => {
|
|||
|
||||
const searchResults = await searchMessages({
|
||||
query: 'alice',
|
||||
contactUuidsMatchingQuery: [mentionedUuids[0], getUuid()],
|
||||
contactUuidsMatchingQuery: [mentionedUuids[0], generateAci()],
|
||||
});
|
||||
|
||||
assert.sameOrderedMembers(
|
||||
|
@ -305,7 +301,7 @@ describe('sql/searchMessages/withMentions', () => {
|
|||
});
|
||||
|
||||
it('includes messages with mentions and those that match the body text', async () => {
|
||||
const mentionedUuids = [getUuid(), getUuid()];
|
||||
const mentionedUuids = [generateAci(), generateAci()];
|
||||
const messages = await storeMessages([
|
||||
{
|
||||
body: 'cat',
|
||||
|
@ -324,7 +320,7 @@ describe('sql/searchMessages/withMentions', () => {
|
|||
|
||||
const searchResults = await searchMessages({
|
||||
query: 'cat',
|
||||
contactUuidsMatchingQuery: [mentionedUuids[0], getUuid()],
|
||||
contactUuidsMatchingQuery: [mentionedUuids[0], generateAci()],
|
||||
});
|
||||
|
||||
assert.sameOrderedMembers(
|
||||
|
@ -336,7 +332,7 @@ describe('sql/searchMessages/withMentions', () => {
|
|||
// match the mention or the text
|
||||
const searchResultsForDog = await searchMessages({
|
||||
query: 'dog',
|
||||
contactUuidsMatchingQuery: [mentionedUuids[1], getUuid()],
|
||||
contactUuidsMatchingQuery: [mentionedUuids[1], generateAci()],
|
||||
});
|
||||
assert.sameOrderedMembers(
|
||||
searchResultsForDog.map(res => res.id),
|
||||
|
@ -344,8 +340,8 @@ describe('sql/searchMessages/withMentions', () => {
|
|||
);
|
||||
});
|
||||
it('respects conversationId for mention matches', async () => {
|
||||
const mentionedUuids = [getUuid(), getUuid()];
|
||||
const conversationId = getUuid();
|
||||
const mentionedUuids = [generateAci(), generateAci()];
|
||||
const conversationId = generateUuid();
|
||||
const messages = await storeMessages([
|
||||
{
|
||||
body: 'cat',
|
||||
|
|
|
@ -2,12 +2,13 @@
|
|||
// SPDX-License-Identifier: AGPL-3.0-only
|
||||
|
||||
import { assert } from 'chai';
|
||||
import { v4 as generateUuid } from 'uuid';
|
||||
|
||||
import dataInterface from '../../sql/Client';
|
||||
import { UUID } from '../../types/UUID';
|
||||
import type { UUIDStringType } from '../../types/UUID';
|
||||
|
||||
import { CallMode } from '../../types/Calling';
|
||||
import { generateAci } from '../../types/ServiceId';
|
||||
import type { ServiceIdString } from '../../types/ServiceId';
|
||||
import type {
|
||||
CallHistoryDetails,
|
||||
CallHistoryGroup,
|
||||
|
@ -24,10 +25,6 @@ import type { ConversationAttributesType } from '../../model-types';
|
|||
const { removeAll, getCallHistoryGroups, saveCallHistory, saveConversation } =
|
||||
dataInterface;
|
||||
|
||||
function getUuid(): UUIDStringType {
|
||||
return UUID.generate().toString();
|
||||
}
|
||||
|
||||
function toGroup(calls: Array<CallHistoryDetails>): CallHistoryGroup {
|
||||
const firstCall = calls.at(0);
|
||||
strictAssert(firstCall != null, 'needs at least 1 item');
|
||||
|
@ -51,7 +48,7 @@ describe('sql/getCallHistoryGroups', () => {
|
|||
|
||||
it('should merge related items in order', async () => {
|
||||
const now = Date.now();
|
||||
const conversationId = getUuid();
|
||||
const conversationId = generateUuid();
|
||||
|
||||
function toCall(callId: string, timestamp: number) {
|
||||
return {
|
||||
|
@ -82,7 +79,7 @@ describe('sql/getCallHistoryGroups', () => {
|
|||
|
||||
it('should separate unrelated items in order', async () => {
|
||||
const now = Date.now();
|
||||
const conversationId = getUuid();
|
||||
const conversationId = generateUuid();
|
||||
|
||||
function toCall(callId: string, timestamp: number, type: CallType) {
|
||||
return {
|
||||
|
@ -113,7 +110,7 @@ describe('sql/getCallHistoryGroups', () => {
|
|||
|
||||
it('should split groups that are contiguous', async () => {
|
||||
const now = Date.now();
|
||||
const conversationId = getUuid();
|
||||
const conversationId = generateUuid();
|
||||
|
||||
function toCall(callId: string, timestamp: number, type: CallType) {
|
||||
return {
|
||||
|
@ -153,7 +150,7 @@ describe('sql/getCallHistoryGroups', () => {
|
|||
it('should search in the correct conversations', async () => {
|
||||
const now = Date.now();
|
||||
|
||||
const conversation1Uuid = getUuid();
|
||||
const conversation1Uuid = generateAci();
|
||||
const conversation2GroupId = 'groupId:2';
|
||||
|
||||
const conversation1: ConversationAttributesType = {
|
||||
|
@ -177,7 +174,7 @@ describe('sql/getCallHistoryGroups', () => {
|
|||
callId: string,
|
||||
timestamp: number,
|
||||
mode: CallMode,
|
||||
peerId: string | UUIDStringType
|
||||
peerId: string | ServiceIdString
|
||||
) {
|
||||
return {
|
||||
callId,
|
||||
|
@ -225,7 +222,7 @@ describe('sql/getCallHistoryGroups', () => {
|
|||
it('should support legacy call history with conversation.id', async () => {
|
||||
const now = Date.now();
|
||||
|
||||
const conversationId = getUuid();
|
||||
const conversationId = generateUuid();
|
||||
|
||||
const conversation: ConversationAttributesType = {
|
||||
type: 'private',
|
||||
|
|
|
@ -2,10 +2,10 @@
|
|||
// SPDX-License-Identifier: AGPL-3.0-only
|
||||
|
||||
import { assert } from 'chai';
|
||||
import { v4 as generateUuid } from 'uuid';
|
||||
|
||||
import dataInterface from '../../sql/Client';
|
||||
import { UUID } from '../../types/UUID';
|
||||
import type { UUIDStringType } from '../../types/UUID';
|
||||
import { generateAci } from '../../types/ServiceId';
|
||||
|
||||
import type { MessageAttributesType } from '../../model-types.d';
|
||||
|
||||
|
@ -16,10 +16,6 @@ const {
|
|||
getCallHistoryMessageByCallId,
|
||||
} = dataInterface;
|
||||
|
||||
function getUuid(): UUIDStringType {
|
||||
return UUID.generate().toString();
|
||||
}
|
||||
|
||||
describe('sql/getCallHistoryMessageByCallId', () => {
|
||||
beforeEach(async () => {
|
||||
await removeAll();
|
||||
|
@ -29,11 +25,11 @@ describe('sql/getCallHistoryMessageByCallId', () => {
|
|||
assert.lengthOf(await _getAllMessages(), 0);
|
||||
|
||||
const now = Date.now();
|
||||
const conversationId = getUuid();
|
||||
const ourUuid = getUuid();
|
||||
const conversationId = generateUuid();
|
||||
const ourAci = generateAci();
|
||||
|
||||
const callHistoryMessage: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
type: 'call-history',
|
||||
conversationId,
|
||||
sent_at: now - 10,
|
||||
|
@ -44,7 +40,7 @@ describe('sql/getCallHistoryMessageByCallId', () => {
|
|||
|
||||
await saveMessages([callHistoryMessage], {
|
||||
forceSave: true,
|
||||
ourUuid,
|
||||
ourAci,
|
||||
});
|
||||
|
||||
const allMessages = await _getAllMessages();
|
||||
|
|
|
@ -2,10 +2,10 @@
|
|||
// SPDX-License-Identifier: AGPL-3.0-only
|
||||
|
||||
import { assert } from 'chai';
|
||||
import { v4 as generateUuid } from 'uuid';
|
||||
|
||||
import { generateAci } from '../../types/ServiceId';
|
||||
import dataInterface from '../../sql/Client';
|
||||
import { UUID } from '../../types/UUID';
|
||||
import type { UUIDStringType } from '../../types/UUID';
|
||||
|
||||
import type { MessageAttributesType } from '../../model-types';
|
||||
|
||||
|
@ -16,10 +16,6 @@ const {
|
|||
getMessagesBetween,
|
||||
} = dataInterface;
|
||||
|
||||
function getUuid(): UUIDStringType {
|
||||
return UUID.generate().toString();
|
||||
}
|
||||
|
||||
describe('sql/getMessagesBetween', () => {
|
||||
beforeEach(async () => {
|
||||
await _removeAllMessages();
|
||||
|
@ -29,12 +25,12 @@ describe('sql/getMessagesBetween', () => {
|
|||
assert.lengthOf(await _getAllMessages(), 0);
|
||||
|
||||
const now = Date.now();
|
||||
const conversationId = getUuid();
|
||||
const ourUuid = getUuid();
|
||||
const conversationId = generateUuid();
|
||||
const ourAci = generateAci();
|
||||
|
||||
function getMessage(body: string, offset: number): MessageAttributesType {
|
||||
return {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body,
|
||||
type: 'outgoing',
|
||||
conversationId,
|
||||
|
@ -52,7 +48,7 @@ describe('sql/getMessagesBetween', () => {
|
|||
|
||||
await saveMessages([message1, message2, message3, message4, message5], {
|
||||
forceSave: true,
|
||||
ourUuid,
|
||||
ourAci,
|
||||
});
|
||||
|
||||
assert.lengthOf(await _getAllMessages(), 5);
|
||||
|
@ -77,12 +73,12 @@ describe('sql/getMessagesBetween', () => {
|
|||
assert.lengthOf(await _getAllMessages(), 0);
|
||||
|
||||
const now = Date.now();
|
||||
const conversationId = getUuid();
|
||||
const ourUuid = getUuid();
|
||||
const conversationId = generateUuid();
|
||||
const ourAci = generateAci();
|
||||
|
||||
function getMessage(body: string, offset: number): MessageAttributesType {
|
||||
return {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body,
|
||||
type: 'outgoing',
|
||||
conversationId,
|
||||
|
@ -100,7 +96,7 @@ describe('sql/getMessagesBetween', () => {
|
|||
|
||||
await saveMessages([message1, message2, message3, message5], {
|
||||
forceSave: true,
|
||||
ourUuid,
|
||||
ourAci,
|
||||
});
|
||||
|
||||
assert.lengthOf(await _getAllMessages(), 4);
|
||||
|
|
|
@ -2,10 +2,10 @@
|
|||
// SPDX-License-Identifier: AGPL-3.0-only
|
||||
|
||||
import { assert } from 'chai';
|
||||
import { v4 as generateUuid } from 'uuid';
|
||||
|
||||
import dataInterface from '../../sql/Client';
|
||||
import { UUID } from '../../types/UUID';
|
||||
import type { UUIDStringType } from '../../types/UUID';
|
||||
import { generateAci } from '../../types/ServiceId';
|
||||
|
||||
import type { MessageAttributesType } from '../../model-types';
|
||||
|
||||
|
@ -16,10 +16,6 @@ const {
|
|||
getNearbyMessageFromDeletedSet,
|
||||
} = dataInterface;
|
||||
|
||||
function getUuid(): UUIDStringType {
|
||||
return UUID.generate().toString();
|
||||
}
|
||||
|
||||
describe('sql/getNearbyMessageFromDeletedSet', () => {
|
||||
beforeEach(async () => {
|
||||
await _removeAllMessages();
|
||||
|
@ -29,8 +25,8 @@ describe('sql/getNearbyMessageFromDeletedSet', () => {
|
|||
assert.lengthOf(await _getAllMessages(), 0);
|
||||
|
||||
const now = Date.now();
|
||||
const conversationId = getUuid();
|
||||
const ourUuid = getUuid();
|
||||
const conversationId = generateUuid();
|
||||
const ourAci = generateAci();
|
||||
|
||||
function getMessage(body: string, offset: number): MessageAttributesType {
|
||||
return {
|
||||
|
@ -52,7 +48,7 @@ describe('sql/getNearbyMessageFromDeletedSet', () => {
|
|||
|
||||
await saveMessages([message1, message2, message3, message4, message5], {
|
||||
forceSave: true,
|
||||
ourUuid,
|
||||
ourAci,
|
||||
});
|
||||
|
||||
assert.lengthOf(await _getAllMessages(), 5);
|
||||
|
|
|
@ -2,20 +2,16 @@
|
|||
// SPDX-License-Identifier: AGPL-3.0-only
|
||||
|
||||
import { assert } from 'chai';
|
||||
import { v4 as generateUuid } from 'uuid';
|
||||
|
||||
import dataInterface from '../../sql/Client';
|
||||
import { UUID } from '../../types/UUID';
|
||||
import type { UUIDStringType } from '../../types/UUID';
|
||||
import { generateAci } from '../../types/ServiceId';
|
||||
|
||||
import type { MessageAttributesType } from '../../model-types.d';
|
||||
|
||||
const { _getAllMessages, getRecentStoryReplies, removeAll, saveMessages } =
|
||||
dataInterface;
|
||||
|
||||
function getUuid(): UUIDStringType {
|
||||
return UUID.generate().toString();
|
||||
}
|
||||
|
||||
describe('sql/getRecentStoryReplies', () => {
|
||||
beforeEach(async () => {
|
||||
await removeAll();
|
||||
|
@ -25,13 +21,13 @@ describe('sql/getRecentStoryReplies', () => {
|
|||
assert.lengthOf(await _getAllMessages(), 0);
|
||||
|
||||
const now = Date.now();
|
||||
const conversationId1 = getUuid();
|
||||
const conversationId2 = getUuid();
|
||||
const conversationId3 = getUuid();
|
||||
const ourUuid = getUuid();
|
||||
const storyId = getUuid();
|
||||
const conversationId1 = generateUuid();
|
||||
const conversationId2 = generateUuid();
|
||||
const conversationId3 = generateUuid();
|
||||
const ourAci = generateAci();
|
||||
const storyId = generateUuid();
|
||||
const message1: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'message 1 - reply #1',
|
||||
type: 'incoming',
|
||||
conversationId: conversationId1,
|
||||
|
@ -41,7 +37,7 @@ describe('sql/getRecentStoryReplies', () => {
|
|||
storyId,
|
||||
};
|
||||
const message2: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'message 2 - reply #2',
|
||||
type: 'incoming',
|
||||
conversationId: conversationId2,
|
||||
|
@ -51,7 +47,7 @@ describe('sql/getRecentStoryReplies', () => {
|
|||
storyId,
|
||||
};
|
||||
const message3: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'message 3 - reply #3',
|
||||
type: 'incoming',
|
||||
conversationId: conversationId3,
|
||||
|
@ -61,7 +57,7 @@ describe('sql/getRecentStoryReplies', () => {
|
|||
storyId,
|
||||
};
|
||||
const message4: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'message 4 - the story itself',
|
||||
type: 'story',
|
||||
conversationId: conversationId3,
|
||||
|
@ -71,17 +67,17 @@ describe('sql/getRecentStoryReplies', () => {
|
|||
storyId,
|
||||
};
|
||||
const message5: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'message 5 - different story reply',
|
||||
type: 'incoming',
|
||||
conversationId: conversationId1,
|
||||
sent_at: now,
|
||||
received_at: now,
|
||||
timestamp: now,
|
||||
storyId: getUuid(),
|
||||
storyId: generateUuid(),
|
||||
};
|
||||
const message6: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'message 6 - no story fields',
|
||||
type: 'incoming',
|
||||
conversationId: conversationId1,
|
||||
|
@ -94,7 +90,7 @@ describe('sql/getRecentStoryReplies', () => {
|
|||
[message1, message2, message3, message4, message5, message6],
|
||||
{
|
||||
forceSave: true,
|
||||
ourUuid,
|
||||
ourAci,
|
||||
}
|
||||
);
|
||||
|
||||
|
|
|
@ -2,10 +2,10 @@
|
|||
// SPDX-License-Identifier: AGPL-3.0-only
|
||||
|
||||
import { assert } from 'chai';
|
||||
import { v4 as generateUuid } from 'uuid';
|
||||
|
||||
import dataInterface from '../../sql/Client';
|
||||
import { UUID } from '../../types/UUID';
|
||||
import type { UUIDStringType } from '../../types/UUID';
|
||||
import { generateAci } from '../../types/ServiceId';
|
||||
|
||||
import type { ReactionType } from '../../types/Reactions';
|
||||
import { DurationInSeconds } from '../../util/durations';
|
||||
|
@ -24,10 +24,6 @@ const {
|
|||
getUnreadReactionsAndMarkRead,
|
||||
} = dataInterface;
|
||||
|
||||
function getUuid(): UUIDStringType {
|
||||
return UUID.generate().toString();
|
||||
}
|
||||
|
||||
describe('sql/markRead', () => {
|
||||
beforeEach(async () => {
|
||||
await _removeAllMessages();
|
||||
|
@ -39,11 +35,11 @@ describe('sql/markRead', () => {
|
|||
|
||||
const start = Date.now();
|
||||
const readAt = start + 20;
|
||||
const conversationId = getUuid();
|
||||
const ourUuid = getUuid();
|
||||
const conversationId = generateUuid();
|
||||
const ourAci = generateAci();
|
||||
|
||||
const oldest: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'message 1',
|
||||
type: 'incoming',
|
||||
conversationId,
|
||||
|
@ -53,7 +49,7 @@ describe('sql/markRead', () => {
|
|||
readStatus: ReadStatus.Read,
|
||||
};
|
||||
const oldestUnread: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'message 2',
|
||||
type: 'incoming',
|
||||
conversationId,
|
||||
|
@ -63,17 +59,17 @@ describe('sql/markRead', () => {
|
|||
readStatus: ReadStatus.Unread,
|
||||
};
|
||||
const unreadInAnotherConvo: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'message 3',
|
||||
type: 'incoming',
|
||||
conversationId: getUuid(),
|
||||
conversationId: generateUuid(),
|
||||
sent_at: start + 3,
|
||||
received_at: start + 3,
|
||||
timestamp: start + 3,
|
||||
readStatus: ReadStatus.Unread,
|
||||
};
|
||||
const unread: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'message 4',
|
||||
type: 'incoming',
|
||||
conversationId,
|
||||
|
@ -83,7 +79,7 @@ describe('sql/markRead', () => {
|
|||
readStatus: ReadStatus.Unread,
|
||||
};
|
||||
const unreadStory: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'message 5',
|
||||
type: 'story',
|
||||
conversationId,
|
||||
|
@ -91,10 +87,10 @@ describe('sql/markRead', () => {
|
|||
received_at: start + 5,
|
||||
timestamp: start + 5,
|
||||
readStatus: ReadStatus.Unread,
|
||||
storyId: getUuid(),
|
||||
storyId: generateUuid(),
|
||||
};
|
||||
const unreadStoryReply: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'message 6',
|
||||
type: 'incoming',
|
||||
conversationId,
|
||||
|
@ -102,10 +98,10 @@ describe('sql/markRead', () => {
|
|||
received_at: start + 6,
|
||||
timestamp: start + 6,
|
||||
readStatus: ReadStatus.Unread,
|
||||
storyId: getUuid(),
|
||||
storyId: generateUuid(),
|
||||
};
|
||||
const newestUnread: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'message 7',
|
||||
type: 'incoming',
|
||||
conversationId,
|
||||
|
@ -127,7 +123,7 @@ describe('sql/markRead', () => {
|
|||
],
|
||||
{
|
||||
forceSave: true,
|
||||
ourUuid,
|
||||
ourAci,
|
||||
}
|
||||
);
|
||||
|
||||
|
@ -205,12 +201,12 @@ describe('sql/markRead', () => {
|
|||
|
||||
const start = Date.now();
|
||||
const readAt = start + 20;
|
||||
const conversationId = getUuid();
|
||||
const storyId = getUuid();
|
||||
const ourUuid = getUuid();
|
||||
const conversationId = generateUuid();
|
||||
const storyId = generateUuid();
|
||||
const ourAci = generateAci();
|
||||
|
||||
const message1: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'message 1',
|
||||
type: 'story',
|
||||
conversationId,
|
||||
|
@ -221,7 +217,7 @@ describe('sql/markRead', () => {
|
|||
storyId,
|
||||
};
|
||||
const message2: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'message 2',
|
||||
type: 'incoming',
|
||||
conversationId,
|
||||
|
@ -232,7 +228,7 @@ describe('sql/markRead', () => {
|
|||
storyId,
|
||||
};
|
||||
const message3: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'message 3',
|
||||
type: 'incoming',
|
||||
conversationId,
|
||||
|
@ -240,10 +236,10 @@ describe('sql/markRead', () => {
|
|||
received_at: start + 3,
|
||||
timestamp: start + 3,
|
||||
readStatus: ReadStatus.Unread,
|
||||
storyId: getUuid(),
|
||||
storyId: generateUuid(),
|
||||
};
|
||||
const message4: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'message 4',
|
||||
type: 'incoming',
|
||||
conversationId,
|
||||
|
@ -254,7 +250,7 @@ describe('sql/markRead', () => {
|
|||
storyId,
|
||||
};
|
||||
const message5: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'message 5',
|
||||
type: 'incoming',
|
||||
conversationId,
|
||||
|
@ -262,10 +258,10 @@ describe('sql/markRead', () => {
|
|||
received_at: start + 5,
|
||||
timestamp: start + 5,
|
||||
readStatus: ReadStatus.Unread,
|
||||
storyId: getUuid(),
|
||||
storyId: generateUuid(),
|
||||
};
|
||||
const message6: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'message 6',
|
||||
type: 'incoming',
|
||||
conversationId,
|
||||
|
@ -273,10 +269,10 @@ describe('sql/markRead', () => {
|
|||
received_at: start + 6,
|
||||
timestamp: start + 6,
|
||||
readStatus: ReadStatus.Unread,
|
||||
storyId: getUuid(),
|
||||
storyId: generateUuid(),
|
||||
};
|
||||
const message7: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'message 7',
|
||||
type: 'incoming',
|
||||
conversationId,
|
||||
|
@ -291,7 +287,7 @@ describe('sql/markRead', () => {
|
|||
[message1, message2, message3, message4, message5, message6, message7],
|
||||
{
|
||||
forceSave: true,
|
||||
ourUuid,
|
||||
ourAci,
|
||||
}
|
||||
);
|
||||
|
||||
|
@ -331,12 +327,12 @@ describe('sql/markRead', () => {
|
|||
|
||||
const start = Date.now();
|
||||
const readAt = start + 20;
|
||||
const conversationId = getUuid();
|
||||
const conversationId = generateUuid();
|
||||
const expireTimer = DurationInSeconds.fromSeconds(15);
|
||||
const ourUuid = getUuid();
|
||||
const ourAci = generateAci();
|
||||
|
||||
const message1: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'message 1',
|
||||
type: 'incoming',
|
||||
conversationId,
|
||||
|
@ -348,7 +344,7 @@ describe('sql/markRead', () => {
|
|||
readStatus: ReadStatus.Read,
|
||||
};
|
||||
const message2: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'message 2',
|
||||
type: 'incoming',
|
||||
conversationId,
|
||||
|
@ -359,10 +355,10 @@ describe('sql/markRead', () => {
|
|||
readStatus: ReadStatus.Read,
|
||||
};
|
||||
const message3: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'message 3',
|
||||
type: 'incoming',
|
||||
conversationId: getUuid(),
|
||||
conversationId: generateUuid(),
|
||||
sent_at: start + 3,
|
||||
received_at: start + 3,
|
||||
timestamp: start + 3,
|
||||
|
@ -370,7 +366,7 @@ describe('sql/markRead', () => {
|
|||
readStatus: ReadStatus.Unread,
|
||||
};
|
||||
const message4: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'message 4',
|
||||
type: 'incoming',
|
||||
conversationId,
|
||||
|
@ -381,7 +377,7 @@ describe('sql/markRead', () => {
|
|||
readStatus: ReadStatus.Unread,
|
||||
};
|
||||
const message5: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'message 5',
|
||||
type: 'incoming',
|
||||
conversationId,
|
||||
|
@ -393,7 +389,7 @@ describe('sql/markRead', () => {
|
|||
|
||||
await saveMessages([message1, message2, message3, message4, message5], {
|
||||
forceSave: true,
|
||||
ourUuid,
|
||||
ourAci,
|
||||
});
|
||||
|
||||
assert.strictEqual(
|
||||
|
@ -453,13 +449,13 @@ describe('sql/markRead', () => {
|
|||
assert.lengthOf(await _getAllReactions(), 0);
|
||||
|
||||
const start = Date.now();
|
||||
const conversationId = getUuid();
|
||||
const storyId = getUuid();
|
||||
const ourUuid = getUuid();
|
||||
const conversationId = generateUuid();
|
||||
const storyId = generateUuid();
|
||||
const ourAci = generateAci();
|
||||
|
||||
const pad: Array<MessageAttributesType> = Array.from({ length: 4 }, _ => {
|
||||
return {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'pad message',
|
||||
type: 'incoming',
|
||||
conversationId,
|
||||
|
@ -469,7 +465,7 @@ describe('sql/markRead', () => {
|
|||
};
|
||||
});
|
||||
const message1: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'message 1',
|
||||
type: 'incoming',
|
||||
conversationId,
|
||||
|
@ -478,7 +474,7 @@ describe('sql/markRead', () => {
|
|||
timestamp: start + 1,
|
||||
};
|
||||
const message2: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'message 2',
|
||||
type: 'incoming',
|
||||
conversationId,
|
||||
|
@ -488,16 +484,16 @@ describe('sql/markRead', () => {
|
|||
storyId,
|
||||
};
|
||||
const message3: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'message 3',
|
||||
type: 'incoming',
|
||||
conversationId: getUuid(),
|
||||
conversationId: generateUuid(),
|
||||
sent_at: start + 3,
|
||||
received_at: start + 3,
|
||||
timestamp: start + 3,
|
||||
};
|
||||
const message4: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'message 4',
|
||||
type: 'incoming',
|
||||
conversationId,
|
||||
|
@ -506,7 +502,7 @@ describe('sql/markRead', () => {
|
|||
timestamp: start + 4,
|
||||
};
|
||||
const message5: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'message 5',
|
||||
type: 'incoming',
|
||||
conversationId,
|
||||
|
@ -519,7 +515,7 @@ describe('sql/markRead', () => {
|
|||
[...pad, message1, message2, message3, message4, message5],
|
||||
{
|
||||
forceSave: true,
|
||||
ourUuid,
|
||||
ourAci,
|
||||
}
|
||||
);
|
||||
assert.lengthOf(await _getAllMessages(), pad.length + 5);
|
||||
|
@ -527,46 +523,46 @@ describe('sql/markRead', () => {
|
|||
const reaction1: ReactionType = {
|
||||
conversationId,
|
||||
emoji: '🎉',
|
||||
fromId: getUuid(),
|
||||
fromId: generateUuid(),
|
||||
messageId: message1.id,
|
||||
messageReceivedAt: message1.received_at,
|
||||
targetAuthorUuid: getUuid(),
|
||||
targetAuthorUuid: generateAci(),
|
||||
targetTimestamp: start,
|
||||
};
|
||||
const reaction2: ReactionType = {
|
||||
conversationId,
|
||||
emoji: '🚀',
|
||||
fromId: getUuid(),
|
||||
fromId: generateUuid(),
|
||||
messageId: message2.id,
|
||||
messageReceivedAt: message2.received_at,
|
||||
targetAuthorUuid: getUuid(),
|
||||
targetAuthorUuid: generateAci(),
|
||||
targetTimestamp: start,
|
||||
};
|
||||
const reaction3: ReactionType = {
|
||||
conversationId: getUuid(),
|
||||
conversationId: generateUuid(),
|
||||
emoji: '☀️',
|
||||
fromId: getUuid(),
|
||||
fromId: generateUuid(),
|
||||
messageId: message3.id,
|
||||
messageReceivedAt: message3.received_at,
|
||||
targetAuthorUuid: getUuid(),
|
||||
targetAuthorUuid: generateAci(),
|
||||
targetTimestamp: start,
|
||||
};
|
||||
const reaction4: ReactionType = {
|
||||
conversationId,
|
||||
emoji: '❤️🔥',
|
||||
fromId: getUuid(),
|
||||
fromId: generateUuid(),
|
||||
messageId: message4.id,
|
||||
messageReceivedAt: message4.received_at,
|
||||
targetAuthorUuid: getUuid(),
|
||||
targetAuthorUuid: generateAci(),
|
||||
targetTimestamp: start,
|
||||
};
|
||||
const reaction5: ReactionType = {
|
||||
conversationId,
|
||||
emoji: '🆒',
|
||||
fromId: getUuid(),
|
||||
fromId: generateUuid(),
|
||||
messageId: message5.id,
|
||||
messageReceivedAt: message5.received_at,
|
||||
targetAuthorUuid: getUuid(),
|
||||
targetAuthorUuid: generateAci(),
|
||||
targetTimestamp: start,
|
||||
};
|
||||
|
||||
|
@ -613,12 +609,12 @@ describe('sql/markRead', () => {
|
|||
assert.lengthOf(await _getAllReactions(), 0);
|
||||
|
||||
const start = Date.now();
|
||||
const conversationId = getUuid();
|
||||
const storyId = getUuid();
|
||||
const ourUuid = getUuid();
|
||||
const conversationId = generateUuid();
|
||||
const storyId = generateUuid();
|
||||
const ourAci = generateAci();
|
||||
|
||||
const message1: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'message 1',
|
||||
type: 'incoming',
|
||||
conversationId,
|
||||
|
@ -628,26 +624,26 @@ describe('sql/markRead', () => {
|
|||
storyId,
|
||||
};
|
||||
const message2: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'message 2',
|
||||
type: 'incoming',
|
||||
conversationId,
|
||||
sent_at: start + 2,
|
||||
received_at: start + 2,
|
||||
timestamp: start + 2,
|
||||
storyId: getUuid(),
|
||||
storyId: generateUuid(),
|
||||
};
|
||||
const message3: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'message 3',
|
||||
type: 'incoming',
|
||||
conversationId: getUuid(),
|
||||
conversationId: generateUuid(),
|
||||
sent_at: start + 3,
|
||||
received_at: start + 3,
|
||||
timestamp: start + 3,
|
||||
};
|
||||
const message4: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'message 4',
|
||||
type: 'incoming',
|
||||
conversationId,
|
||||
|
@ -657,7 +653,7 @@ describe('sql/markRead', () => {
|
|||
storyId,
|
||||
};
|
||||
const message5: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'message 5',
|
||||
type: 'incoming',
|
||||
conversationId,
|
||||
|
@ -669,53 +665,53 @@ describe('sql/markRead', () => {
|
|||
|
||||
await saveMessages([message1, message2, message3, message4, message5], {
|
||||
forceSave: true,
|
||||
ourUuid,
|
||||
ourAci,
|
||||
});
|
||||
assert.lengthOf(await _getAllMessages(), 5);
|
||||
|
||||
const reaction1: ReactionType = {
|
||||
conversationId,
|
||||
emoji: '🎉',
|
||||
fromId: getUuid(),
|
||||
fromId: generateUuid(),
|
||||
messageId: message1.id,
|
||||
messageReceivedAt: message1.received_at,
|
||||
targetAuthorUuid: getUuid(),
|
||||
targetAuthorUuid: generateAci(),
|
||||
targetTimestamp: start,
|
||||
};
|
||||
const reaction2: ReactionType = {
|
||||
conversationId,
|
||||
emoji: '🚀',
|
||||
fromId: getUuid(),
|
||||
fromId: generateUuid(),
|
||||
messageId: message2.id,
|
||||
messageReceivedAt: message2.received_at,
|
||||
targetAuthorUuid: getUuid(),
|
||||
targetAuthorUuid: generateAci(),
|
||||
targetTimestamp: start,
|
||||
};
|
||||
const reaction3: ReactionType = {
|
||||
conversationId: getUuid(),
|
||||
conversationId: generateUuid(),
|
||||
emoji: '☀️',
|
||||
fromId: getUuid(),
|
||||
fromId: generateUuid(),
|
||||
messageId: message3.id,
|
||||
messageReceivedAt: message3.received_at,
|
||||
targetAuthorUuid: getUuid(),
|
||||
targetAuthorUuid: generateAci(),
|
||||
targetTimestamp: start,
|
||||
};
|
||||
const reaction4: ReactionType = {
|
||||
conversationId,
|
||||
emoji: '❤️🔥',
|
||||
fromId: getUuid(),
|
||||
fromId: generateUuid(),
|
||||
messageId: message4.id,
|
||||
messageReceivedAt: message4.received_at,
|
||||
targetAuthorUuid: getUuid(),
|
||||
targetAuthorUuid: generateAci(),
|
||||
targetTimestamp: start,
|
||||
};
|
||||
const reaction5: ReactionType = {
|
||||
conversationId,
|
||||
emoji: '🆒',
|
||||
fromId: getUuid(),
|
||||
fromId: generateUuid(),
|
||||
messageId: message5.id,
|
||||
messageReceivedAt: message5.received_at,
|
||||
targetAuthorUuid: getUuid(),
|
||||
targetAuthorUuid: generateAci(),
|
||||
targetTimestamp: start,
|
||||
};
|
||||
|
||||
|
@ -765,12 +761,12 @@ describe('sql/markRead', () => {
|
|||
|
||||
const start = Date.now();
|
||||
const readAt = start + 20;
|
||||
const conversationId = getUuid();
|
||||
const storyId = getUuid();
|
||||
const ourUuid = getUuid();
|
||||
const conversationId = generateUuid();
|
||||
const storyId = generateUuid();
|
||||
const ourAci = generateAci();
|
||||
|
||||
const message1: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'message 1',
|
||||
type: 'story',
|
||||
conversationId,
|
||||
|
@ -780,7 +776,7 @@ describe('sql/markRead', () => {
|
|||
readStatus: ReadStatus.Read,
|
||||
};
|
||||
const message2: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'message 2',
|
||||
type: 'incoming',
|
||||
conversationId,
|
||||
|
@ -791,7 +787,7 @@ describe('sql/markRead', () => {
|
|||
storyId,
|
||||
};
|
||||
const message3: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'message 3',
|
||||
type: 'incoming',
|
||||
conversationId,
|
||||
|
@ -801,7 +797,7 @@ describe('sql/markRead', () => {
|
|||
readStatus: ReadStatus.Unread,
|
||||
};
|
||||
const message4: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'message 4',
|
||||
type: 'incoming',
|
||||
conversationId,
|
||||
|
@ -814,7 +810,7 @@ describe('sql/markRead', () => {
|
|||
|
||||
await saveMessages([message1, message2, message3, message4], {
|
||||
forceSave: true,
|
||||
ourUuid,
|
||||
ourAci,
|
||||
});
|
||||
|
||||
assert.lengthOf(await _getAllMessages(), 4);
|
||||
|
|
|
@ -2,16 +2,12 @@
|
|||
// SPDX-License-Identifier: AGPL-3.0-only
|
||||
|
||||
import { assert } from 'chai';
|
||||
import { v4 as generateUuid } from 'uuid';
|
||||
|
||||
import dataInterface from '../../sql/Client';
|
||||
import { UUID } from '../../types/UUID';
|
||||
import type { UUIDStringType } from '../../types/UUID';
|
||||
import { generateAci } from '../../types/ServiceId';
|
||||
import { constantTimeEqual, getRandomBytes } from '../../Crypto';
|
||||
|
||||
function getUuid(): UUIDStringType {
|
||||
return UUID.generate().toString();
|
||||
}
|
||||
|
||||
const {
|
||||
_getAllSentProtoMessageIds,
|
||||
_getAllSentProtoRecipients,
|
||||
|
@ -43,9 +39,9 @@ describe('sql/sendLog', () => {
|
|||
hasPniSignatureMessage: false,
|
||||
};
|
||||
await insertSentProto(proto, {
|
||||
messageIds: [getUuid()],
|
||||
messageIds: [generateUuid()],
|
||||
recipients: {
|
||||
[getUuid()]: [1, 2],
|
||||
[generateAci()]: [1, 2],
|
||||
},
|
||||
});
|
||||
const allProtos = await getAllSentProtos();
|
||||
|
@ -82,10 +78,10 @@ describe('sql/sendLog', () => {
|
|||
hasPniSignatureMessage: true,
|
||||
};
|
||||
await insertSentProto(proto, {
|
||||
messageIds: [getUuid(), getUuid()],
|
||||
messageIds: [generateUuid(), generateUuid()],
|
||||
recipients: {
|
||||
[getUuid()]: [1, 2],
|
||||
[getUuid()]: [1],
|
||||
[generateAci()]: [1, 2],
|
||||
[generateAci()]: [1],
|
||||
},
|
||||
});
|
||||
|
||||
|
@ -113,22 +109,22 @@ describe('sql/sendLog', () => {
|
|||
});
|
||||
|
||||
it('trigger deletes payload when referenced message is deleted', async () => {
|
||||
const id = getUuid();
|
||||
const id = generateUuid();
|
||||
const timestamp = Date.now();
|
||||
const ourUuid = getUuid();
|
||||
const ourAci = generateAci();
|
||||
|
||||
await saveMessage(
|
||||
{
|
||||
id,
|
||||
|
||||
body: 'some text',
|
||||
conversationId: getUuid(),
|
||||
conversationId: generateUuid(),
|
||||
received_at: timestamp,
|
||||
sent_at: timestamp,
|
||||
timestamp,
|
||||
type: 'outgoing',
|
||||
},
|
||||
{ forceSave: true, ourUuid }
|
||||
{ forceSave: true, ourAci }
|
||||
);
|
||||
|
||||
const bytes = getRandomBytes(128);
|
||||
|
@ -142,7 +138,7 @@ describe('sql/sendLog', () => {
|
|||
await insertSentProto(proto, {
|
||||
messageIds: [id],
|
||||
recipients: {
|
||||
[getUuid()]: [1, 2],
|
||||
[generateAci()]: [1, 2],
|
||||
},
|
||||
});
|
||||
const allProtos = await getAllSentProtos();
|
||||
|
@ -161,9 +157,9 @@ describe('sql/sendLog', () => {
|
|||
it('supports adding duplicates', async () => {
|
||||
const timestamp = Date.now();
|
||||
|
||||
const messageIds = [getUuid()];
|
||||
const messageIds = [generateUuid()];
|
||||
const recipients = {
|
||||
[getUuid()]: [1],
|
||||
[generateAci()]: [1],
|
||||
};
|
||||
const proto1 = {
|
||||
contentHint: 7,
|
||||
|
@ -202,7 +198,7 @@ describe('sql/sendLog', () => {
|
|||
it('handles duplicates, adding new recipients if needed', async () => {
|
||||
const timestamp = Date.now();
|
||||
|
||||
const messageIds = [getUuid()];
|
||||
const messageIds = [generateUuid()];
|
||||
const proto = {
|
||||
contentHint: 1,
|
||||
proto: getRandomBytes(128),
|
||||
|
@ -218,7 +214,7 @@ describe('sql/sendLog', () => {
|
|||
const id = await insertSentProto(proto, {
|
||||
messageIds,
|
||||
recipients: {
|
||||
[getUuid()]: [1],
|
||||
[generateAci()]: [1],
|
||||
},
|
||||
});
|
||||
|
||||
|
@ -226,10 +222,10 @@ describe('sql/sendLog', () => {
|
|||
assert.lengthOf(await _getAllSentProtoMessageIds(), 1);
|
||||
assert.lengthOf(await _getAllSentProtoRecipients(), 1);
|
||||
|
||||
const recipientUuid = getUuid();
|
||||
const recipientServiceId = generateAci();
|
||||
await insertProtoRecipients({
|
||||
id,
|
||||
recipientUuid,
|
||||
recipientServiceId,
|
||||
deviceIds: [1, 2],
|
||||
});
|
||||
|
||||
|
@ -265,21 +261,21 @@ describe('sql/sendLog', () => {
|
|||
hasPniSignatureMessage: false,
|
||||
};
|
||||
await insertSentProto(proto1, {
|
||||
messageIds: [getUuid()],
|
||||
messageIds: [generateUuid()],
|
||||
recipients: {
|
||||
[getUuid()]: [1],
|
||||
[generateAci()]: [1],
|
||||
},
|
||||
});
|
||||
await insertSentProto(proto2, {
|
||||
messageIds: [getUuid()],
|
||||
messageIds: [generateUuid()],
|
||||
recipients: {
|
||||
[getUuid()]: [1, 2],
|
||||
[generateAci()]: [1, 2],
|
||||
},
|
||||
});
|
||||
await insertSentProto(proto3, {
|
||||
messageIds: [getUuid()],
|
||||
messageIds: [generateUuid()],
|
||||
recipients: {
|
||||
[getUuid()]: [1, 2, 3],
|
||||
[generateAci()]: [1, 2, 3],
|
||||
},
|
||||
});
|
||||
|
||||
|
@ -308,7 +304,7 @@ describe('sql/sendLog', () => {
|
|||
assert.lengthOf(await _getAllSentProtoMessageIds(), 0);
|
||||
assert.lengthOf(await _getAllSentProtoRecipients(), 0);
|
||||
|
||||
const messageId = getUuid();
|
||||
const messageId = generateUuid();
|
||||
const timestamp = Date.now();
|
||||
const proto1 = {
|
||||
contentHint: 1,
|
||||
|
@ -332,22 +328,22 @@ describe('sql/sendLog', () => {
|
|||
hasPniSignatureMessage: false,
|
||||
};
|
||||
await insertSentProto(proto1, {
|
||||
messageIds: [messageId, getUuid()],
|
||||
messageIds: [messageId, generateUuid()],
|
||||
recipients: {
|
||||
[getUuid()]: [1, 2],
|
||||
[getUuid()]: [1],
|
||||
[generateAci()]: [1, 2],
|
||||
[generateAci()]: [1],
|
||||
},
|
||||
});
|
||||
await insertSentProto(proto2, {
|
||||
messageIds: [messageId],
|
||||
recipients: {
|
||||
[getUuid()]: [1],
|
||||
[generateAci()]: [1],
|
||||
},
|
||||
});
|
||||
await insertSentProto(proto3, {
|
||||
messageIds: [getUuid()],
|
||||
messageIds: [generateUuid()],
|
||||
recipients: {
|
||||
[getUuid()]: [1],
|
||||
[generateAci()]: [1],
|
||||
},
|
||||
});
|
||||
|
||||
|
@ -367,8 +363,8 @@ describe('sql/sendLog', () => {
|
|||
it('does not delete payload if recipient remains', async () => {
|
||||
const timestamp = Date.now();
|
||||
|
||||
const recipientUuid1 = getUuid();
|
||||
const recipientUuid2 = getUuid();
|
||||
const recipientServiceId1 = generateAci();
|
||||
const recipientServiceId2 = generateAci();
|
||||
const proto = {
|
||||
contentHint: 1,
|
||||
proto: getRandomBytes(128),
|
||||
|
@ -377,10 +373,10 @@ describe('sql/sendLog', () => {
|
|||
hasPniSignatureMessage: false,
|
||||
};
|
||||
await insertSentProto(proto, {
|
||||
messageIds: [getUuid()],
|
||||
messageIds: [generateUuid()],
|
||||
recipients: {
|
||||
[recipientUuid1]: [1, 2],
|
||||
[recipientUuid2]: [1],
|
||||
[recipientServiceId1]: [1, 2],
|
||||
[recipientServiceId2]: [1],
|
||||
},
|
||||
});
|
||||
|
||||
|
@ -389,7 +385,7 @@ describe('sql/sendLog', () => {
|
|||
|
||||
const { successfulPhoneNumberShares } = await deleteSentProtoRecipient({
|
||||
timestamp,
|
||||
recipientUuid: recipientUuid1,
|
||||
recipientServiceId: recipientServiceId1,
|
||||
deviceId: 1,
|
||||
});
|
||||
assert.lengthOf(successfulPhoneNumberShares, 0);
|
||||
|
@ -401,8 +397,8 @@ describe('sql/sendLog', () => {
|
|||
it('deletes payload if no recipients remain', async () => {
|
||||
const timestamp = Date.now();
|
||||
|
||||
const recipientUuid1 = getUuid();
|
||||
const recipientUuid2 = getUuid();
|
||||
const recipientServiceId1 = generateAci();
|
||||
const recipientServiceId2 = generateAci();
|
||||
const proto = {
|
||||
contentHint: 1,
|
||||
proto: getRandomBytes(128),
|
||||
|
@ -411,10 +407,10 @@ describe('sql/sendLog', () => {
|
|||
hasPniSignatureMessage: false,
|
||||
};
|
||||
await insertSentProto(proto, {
|
||||
messageIds: [getUuid()],
|
||||
messageIds: [generateUuid()],
|
||||
recipients: {
|
||||
[recipientUuid1]: [1, 2],
|
||||
[recipientUuid2]: [1],
|
||||
[recipientServiceId1]: [1, 2],
|
||||
[recipientServiceId2]: [1],
|
||||
},
|
||||
});
|
||||
|
||||
|
@ -424,7 +420,7 @@ describe('sql/sendLog', () => {
|
|||
{
|
||||
const { successfulPhoneNumberShares } = await deleteSentProtoRecipient({
|
||||
timestamp,
|
||||
recipientUuid: recipientUuid1,
|
||||
recipientServiceId: recipientServiceId1,
|
||||
deviceId: 1,
|
||||
});
|
||||
assert.lengthOf(successfulPhoneNumberShares, 0);
|
||||
|
@ -436,7 +432,7 @@ describe('sql/sendLog', () => {
|
|||
{
|
||||
const { successfulPhoneNumberShares } = await deleteSentProtoRecipient({
|
||||
timestamp,
|
||||
recipientUuid: recipientUuid1,
|
||||
recipientServiceId: recipientServiceId1,
|
||||
deviceId: 2,
|
||||
});
|
||||
assert.lengthOf(successfulPhoneNumberShares, 0);
|
||||
|
@ -448,7 +444,7 @@ describe('sql/sendLog', () => {
|
|||
{
|
||||
const { successfulPhoneNumberShares } = await deleteSentProtoRecipient({
|
||||
timestamp,
|
||||
recipientUuid: recipientUuid2,
|
||||
recipientServiceId: recipientServiceId2,
|
||||
deviceId: 1,
|
||||
});
|
||||
assert.lengthOf(successfulPhoneNumberShares, 0);
|
||||
|
@ -461,8 +457,8 @@ describe('sql/sendLog', () => {
|
|||
it('returns deleted recipients when pni signature was sent', async () => {
|
||||
const timestamp = Date.now();
|
||||
|
||||
const recipientUuid1 = getUuid();
|
||||
const recipientUuid2 = getUuid();
|
||||
const recipientServiceId1 = generateAci();
|
||||
const recipientServiceId2 = generateAci();
|
||||
const proto = {
|
||||
contentHint: 1,
|
||||
proto: getRandomBytes(128),
|
||||
|
@ -471,10 +467,10 @@ describe('sql/sendLog', () => {
|
|||
hasPniSignatureMessage: true,
|
||||
};
|
||||
await insertSentProto(proto, {
|
||||
messageIds: [getUuid()],
|
||||
messageIds: [generateUuid()],
|
||||
recipients: {
|
||||
[recipientUuid1]: [1, 2],
|
||||
[recipientUuid2]: [1],
|
||||
[recipientServiceId1]: [1, 2],
|
||||
[recipientServiceId2]: [1],
|
||||
},
|
||||
});
|
||||
|
||||
|
@ -484,7 +480,7 @@ describe('sql/sendLog', () => {
|
|||
{
|
||||
const { successfulPhoneNumberShares } = await deleteSentProtoRecipient({
|
||||
timestamp,
|
||||
recipientUuid: recipientUuid1,
|
||||
recipientServiceId: recipientServiceId1,
|
||||
deviceId: 1,
|
||||
});
|
||||
assert.lengthOf(successfulPhoneNumberShares, 0);
|
||||
|
@ -496,10 +492,12 @@ describe('sql/sendLog', () => {
|
|||
{
|
||||
const { successfulPhoneNumberShares } = await deleteSentProtoRecipient({
|
||||
timestamp,
|
||||
recipientUuid: recipientUuid1,
|
||||
recipientServiceId: recipientServiceId1,
|
||||
deviceId: 2,
|
||||
});
|
||||
assert.deepStrictEqual(successfulPhoneNumberShares, [recipientUuid1]);
|
||||
assert.deepStrictEqual(successfulPhoneNumberShares, [
|
||||
recipientServiceId1,
|
||||
]);
|
||||
}
|
||||
|
||||
assert.lengthOf(await getAllSentProtos(), 1);
|
||||
|
@ -508,10 +506,12 @@ describe('sql/sendLog', () => {
|
|||
{
|
||||
const { successfulPhoneNumberShares } = await deleteSentProtoRecipient({
|
||||
timestamp,
|
||||
recipientUuid: recipientUuid2,
|
||||
recipientServiceId: recipientServiceId2,
|
||||
deviceId: 1,
|
||||
});
|
||||
assert.deepStrictEqual(successfulPhoneNumberShares, [recipientUuid2]);
|
||||
assert.deepStrictEqual(successfulPhoneNumberShares, [
|
||||
recipientServiceId2,
|
||||
]);
|
||||
}
|
||||
|
||||
assert.lengthOf(await getAllSentProtos(), 0);
|
||||
|
@ -521,8 +521,8 @@ describe('sql/sendLog', () => {
|
|||
it('deletes multiple recipients in a single transaction', async () => {
|
||||
const timestamp = Date.now();
|
||||
|
||||
const recipientUuid1 = getUuid();
|
||||
const recipientUuid2 = getUuid();
|
||||
const recipientServiceId1 = generateAci();
|
||||
const recipientServiceId2 = generateAci();
|
||||
const proto = {
|
||||
contentHint: 1,
|
||||
proto: getRandomBytes(128),
|
||||
|
@ -531,10 +531,10 @@ describe('sql/sendLog', () => {
|
|||
hasPniSignatureMessage: false,
|
||||
};
|
||||
await insertSentProto(proto, {
|
||||
messageIds: [getUuid()],
|
||||
messageIds: [generateUuid()],
|
||||
recipients: {
|
||||
[recipientUuid1]: [1, 2],
|
||||
[recipientUuid2]: [1],
|
||||
[recipientServiceId1]: [1, 2],
|
||||
[recipientServiceId2]: [1],
|
||||
},
|
||||
});
|
||||
|
||||
|
@ -544,17 +544,17 @@ describe('sql/sendLog', () => {
|
|||
const { successfulPhoneNumberShares } = await deleteSentProtoRecipient([
|
||||
{
|
||||
timestamp,
|
||||
recipientUuid: recipientUuid1,
|
||||
recipientServiceId: recipientServiceId1,
|
||||
deviceId: 1,
|
||||
},
|
||||
{
|
||||
timestamp,
|
||||
recipientUuid: recipientUuid1,
|
||||
recipientServiceId: recipientServiceId1,
|
||||
deviceId: 2,
|
||||
},
|
||||
{
|
||||
timestamp,
|
||||
recipientUuid: recipientUuid2,
|
||||
recipientServiceId: recipientServiceId2,
|
||||
deviceId: 1,
|
||||
},
|
||||
]);
|
||||
|
@ -569,8 +569,8 @@ describe('sql/sendLog', () => {
|
|||
it('returns matching payload', async () => {
|
||||
const timestamp = Date.now();
|
||||
|
||||
const recipientUuid = getUuid();
|
||||
const messageIds = [getUuid(), getUuid()];
|
||||
const recipientServiceId = generateAci();
|
||||
const messageIds = [generateUuid(), generateUuid()];
|
||||
const proto = {
|
||||
contentHint: 1,
|
||||
proto: getRandomBytes(128),
|
||||
|
@ -581,7 +581,7 @@ describe('sql/sendLog', () => {
|
|||
await insertSentProto(proto, {
|
||||
messageIds,
|
||||
recipients: {
|
||||
[recipientUuid]: [1, 2],
|
||||
[recipientServiceId]: [1, 2],
|
||||
},
|
||||
});
|
||||
|
||||
|
@ -592,7 +592,7 @@ describe('sql/sendLog', () => {
|
|||
const actual = await getSentProtoByRecipient({
|
||||
now: timestamp,
|
||||
timestamp,
|
||||
recipientUuid,
|
||||
recipientServiceId,
|
||||
});
|
||||
|
||||
if (!actual) {
|
||||
|
@ -607,7 +607,7 @@ describe('sql/sendLog', () => {
|
|||
it('returns matching payload with no messageIds', async () => {
|
||||
const timestamp = Date.now();
|
||||
|
||||
const recipientUuid = getUuid();
|
||||
const recipientServiceId = generateAci();
|
||||
const proto = {
|
||||
contentHint: 1,
|
||||
proto: getRandomBytes(128),
|
||||
|
@ -618,7 +618,7 @@ describe('sql/sendLog', () => {
|
|||
await insertSentProto(proto, {
|
||||
messageIds: [],
|
||||
recipients: {
|
||||
[recipientUuid]: [1, 2],
|
||||
[recipientServiceId]: [1, 2],
|
||||
},
|
||||
});
|
||||
|
||||
|
@ -629,7 +629,7 @@ describe('sql/sendLog', () => {
|
|||
const actual = await getSentProtoByRecipient({
|
||||
now: timestamp,
|
||||
timestamp,
|
||||
recipientUuid,
|
||||
recipientServiceId,
|
||||
});
|
||||
|
||||
if (!actual) {
|
||||
|
@ -644,7 +644,7 @@ describe('sql/sendLog', () => {
|
|||
it('returns nothing if payload does not have recipient', async () => {
|
||||
const timestamp = Date.now();
|
||||
|
||||
const recipientUuid = getUuid();
|
||||
const recipientServiceId = generateAci();
|
||||
const proto = {
|
||||
contentHint: 1,
|
||||
proto: getRandomBytes(128),
|
||||
|
@ -653,9 +653,9 @@ describe('sql/sendLog', () => {
|
|||
hasPniSignatureMessage: false,
|
||||
};
|
||||
await insertSentProto(proto, {
|
||||
messageIds: [getUuid()],
|
||||
messageIds: [generateUuid()],
|
||||
recipients: {
|
||||
[recipientUuid]: [1, 2],
|
||||
[recipientServiceId]: [1, 2],
|
||||
},
|
||||
});
|
||||
|
||||
|
@ -665,7 +665,7 @@ describe('sql/sendLog', () => {
|
|||
const actual = await getSentProtoByRecipient({
|
||||
now: timestamp,
|
||||
timestamp,
|
||||
recipientUuid: getUuid(),
|
||||
recipientServiceId: generateAci(),
|
||||
});
|
||||
|
||||
assert.isUndefined(actual);
|
||||
|
@ -674,7 +674,7 @@ describe('sql/sendLog', () => {
|
|||
it('returns nothing if timestamp does not match', async () => {
|
||||
const timestamp = Date.now();
|
||||
|
||||
const recipientUuid = getUuid();
|
||||
const recipientServiceId = generateAci();
|
||||
const proto = {
|
||||
contentHint: 1,
|
||||
proto: getRandomBytes(128),
|
||||
|
@ -683,9 +683,9 @@ describe('sql/sendLog', () => {
|
|||
hasPniSignatureMessage: false,
|
||||
};
|
||||
await insertSentProto(proto, {
|
||||
messageIds: [getUuid()],
|
||||
messageIds: [generateUuid()],
|
||||
recipients: {
|
||||
[recipientUuid]: [1, 2],
|
||||
[recipientServiceId]: [1, 2],
|
||||
},
|
||||
});
|
||||
|
||||
|
@ -695,7 +695,7 @@ describe('sql/sendLog', () => {
|
|||
const actual = await getSentProtoByRecipient({
|
||||
now: timestamp,
|
||||
timestamp: timestamp + 1,
|
||||
recipientUuid,
|
||||
recipientServiceId,
|
||||
});
|
||||
|
||||
assert.isUndefined(actual);
|
||||
|
@ -705,7 +705,7 @@ describe('sql/sendLog', () => {
|
|||
const TWO_DAYS = 2 * 24 * 60 * 60 * 1000;
|
||||
const timestamp = Date.now();
|
||||
|
||||
const recipientUuid = getUuid();
|
||||
const recipientServiceId = generateAci();
|
||||
const proto = {
|
||||
contentHint: 1,
|
||||
proto: getRandomBytes(128),
|
||||
|
@ -714,9 +714,9 @@ describe('sql/sendLog', () => {
|
|||
hasPniSignatureMessage: false,
|
||||
};
|
||||
await insertSentProto(proto, {
|
||||
messageIds: [getUuid()],
|
||||
messageIds: [generateUuid()],
|
||||
recipients: {
|
||||
[recipientUuid]: [1, 2],
|
||||
[recipientServiceId]: [1, 2],
|
||||
},
|
||||
});
|
||||
|
||||
|
@ -726,7 +726,7 @@ describe('sql/sendLog', () => {
|
|||
const actual = await getSentProtoByRecipient({
|
||||
now: timestamp + TWO_DAYS,
|
||||
timestamp,
|
||||
recipientUuid,
|
||||
recipientServiceId,
|
||||
});
|
||||
|
||||
assert.isUndefined(actual);
|
||||
|
|
|
@ -2,20 +2,16 @@
|
|||
// SPDX-License-Identifier: AGPL-3.0-only
|
||||
|
||||
import { assert } from 'chai';
|
||||
import { v4 as generateUuid } from 'uuid';
|
||||
|
||||
import dataInterface from '../../sql/Client';
|
||||
import { UUID } from '../../types/UUID';
|
||||
import type { UUIDStringType } from '../../types/UUID';
|
||||
import { generateAci } from '../../types/ServiceId';
|
||||
|
||||
import type { MessageAttributesType } from '../../model-types.d';
|
||||
|
||||
const { removeAll, _getAllMessages, saveMessages, getAllStories } =
|
||||
dataInterface;
|
||||
|
||||
function getUuid(): UUIDStringType {
|
||||
return UUID.generate().toString();
|
||||
}
|
||||
|
||||
describe('sql/stories', () => {
|
||||
beforeEach(async () => {
|
||||
await removeAll();
|
||||
|
@ -26,55 +22,55 @@ describe('sql/stories', () => {
|
|||
assert.lengthOf(await _getAllMessages(), 0);
|
||||
|
||||
const now = Date.now();
|
||||
const conversationId = getUuid();
|
||||
const sourceUuid = getUuid();
|
||||
const ourUuid = getUuid();
|
||||
const conversationId = generateUuid();
|
||||
const sourceUuid = generateAci();
|
||||
const ourAci = generateAci();
|
||||
|
||||
const story1: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'story 1',
|
||||
type: 'story',
|
||||
conversationId,
|
||||
sent_at: now - 20,
|
||||
received_at: now - 20,
|
||||
timestamp: now - 20,
|
||||
sourceUuid: getUuid(),
|
||||
sourceUuid: generateAci(),
|
||||
};
|
||||
const story2: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'story 2',
|
||||
type: 'story',
|
||||
conversationId: getUuid(),
|
||||
conversationId: generateUuid(),
|
||||
sent_at: now - 10,
|
||||
received_at: now - 10,
|
||||
timestamp: now - 10,
|
||||
sourceUuid,
|
||||
};
|
||||
const story3: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'message 3',
|
||||
type: 'incoming',
|
||||
conversationId: getUuid(),
|
||||
conversationId: generateUuid(),
|
||||
sent_at: now,
|
||||
received_at: now,
|
||||
timestamp: now,
|
||||
sourceUuid,
|
||||
};
|
||||
const story4: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'story 4',
|
||||
type: 'story',
|
||||
conversationId,
|
||||
sent_at: now,
|
||||
received_at: now,
|
||||
timestamp: now,
|
||||
sourceUuid: getUuid(),
|
||||
sourceUuid: generateAci(),
|
||||
};
|
||||
const story5: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'story 5',
|
||||
type: 'story',
|
||||
conversationId: getUuid(),
|
||||
conversationId: generateUuid(),
|
||||
sent_at: now,
|
||||
received_at: now,
|
||||
timestamp: now,
|
||||
|
@ -83,7 +79,7 @@ describe('sql/stories', () => {
|
|||
|
||||
await saveMessages([story1, story2, story3, story4, story5], {
|
||||
forceSave: true,
|
||||
ourUuid,
|
||||
ourAci,
|
||||
});
|
||||
|
||||
assert.lengthOf(await _getAllMessages(), 5);
|
||||
|
|
|
@ -2,10 +2,11 @@
|
|||
// SPDX-License-Identifier: AGPL-3.0-only
|
||||
|
||||
import { assert } from 'chai';
|
||||
import { v4 as generateUuid } from 'uuid';
|
||||
|
||||
import dataInterface from '../../sql/Client';
|
||||
import { UUID } from '../../types/UUID';
|
||||
import type { UUIDStringType } from '../../types/UUID';
|
||||
import { generateAci } from '../../types/ServiceId';
|
||||
import { generateStoryDistributionId } from '../../types/StoryDistributionId';
|
||||
|
||||
import type { StoryDistributionWithMembersType } from '../../sql/Interface';
|
||||
|
||||
|
@ -21,10 +22,6 @@ const {
|
|||
modifyStoryDistributionWithMembers,
|
||||
} = dataInterface;
|
||||
|
||||
function getUuid(): UUIDStringType {
|
||||
return UUID.generate().toString();
|
||||
}
|
||||
|
||||
describe('sql/storyDistribution', () => {
|
||||
beforeEach(async () => {
|
||||
await _deleteAllStoryDistributions();
|
||||
|
@ -32,17 +29,17 @@ describe('sql/storyDistribution', () => {
|
|||
|
||||
it('roundtrips with create/fetch/delete', async () => {
|
||||
const list: StoryDistributionWithMembersType = {
|
||||
id: getUuid(),
|
||||
id: generateStoryDistributionId(),
|
||||
name: 'My Story',
|
||||
allowsReplies: true,
|
||||
isBlockList: false,
|
||||
members: [getUuid(), getUuid()],
|
||||
members: [generateAci(), generateAci()],
|
||||
senderKeyInfo: {
|
||||
createdAtDate: Date.now(),
|
||||
distributionId: getUuid(),
|
||||
distributionId: generateUuid(),
|
||||
memberDevices: [],
|
||||
},
|
||||
storageID: getUuid(),
|
||||
storageID: generateUuid(),
|
||||
storageVersion: 1,
|
||||
storageNeedsSync: false,
|
||||
storageUnknownFields: undefined,
|
||||
|
@ -66,20 +63,20 @@ describe('sql/storyDistribution', () => {
|
|||
});
|
||||
|
||||
it('updates core fields with modifyStoryDistribution', async () => {
|
||||
const UUID_1 = getUuid();
|
||||
const UUID_2 = getUuid();
|
||||
const SERVICE_ID_1 = generateAci();
|
||||
const SERVICE_ID_2 = generateAci();
|
||||
const list: StoryDistributionWithMembersType = {
|
||||
id: getUuid(),
|
||||
id: generateStoryDistributionId(),
|
||||
name: 'My Story',
|
||||
allowsReplies: true,
|
||||
isBlockList: false,
|
||||
members: [UUID_1, UUID_2],
|
||||
members: [SERVICE_ID_1, SERVICE_ID_2],
|
||||
senderKeyInfo: {
|
||||
createdAtDate: Date.now(),
|
||||
distributionId: getUuid(),
|
||||
distributionId: generateUuid(),
|
||||
memberDevices: [],
|
||||
},
|
||||
storageID: getUuid(),
|
||||
storageID: generateUuid(),
|
||||
storageVersion: 1,
|
||||
storageNeedsSync: false,
|
||||
storageUnknownFields: undefined,
|
||||
|
@ -96,11 +93,11 @@ describe('sql/storyDistribution', () => {
|
|||
name: 'Updated story',
|
||||
senderKeyInfo: {
|
||||
createdAtDate: Date.now() + 10,
|
||||
distributionId: getUuid(),
|
||||
distributionId: generateUuid(),
|
||||
memberDevices: [
|
||||
{
|
||||
id: 1,
|
||||
identifier: UUID_1,
|
||||
identifier: SERVICE_ID_1,
|
||||
registrationId: 232,
|
||||
},
|
||||
],
|
||||
|
@ -118,22 +115,22 @@ describe('sql/storyDistribution', () => {
|
|||
});
|
||||
|
||||
it('adds and removes with modifyStoryDistributionMembers', async () => {
|
||||
const UUID_1 = getUuid();
|
||||
const UUID_2 = getUuid();
|
||||
const UUID_3 = getUuid();
|
||||
const UUID_4 = getUuid();
|
||||
const SERVICE_ID_1 = generateAci();
|
||||
const SERVICE_ID_2 = generateAci();
|
||||
const SERVICE_ID_3 = generateAci();
|
||||
const SERVICE_ID_4 = generateAci();
|
||||
const list: StoryDistributionWithMembersType = {
|
||||
id: getUuid(),
|
||||
id: generateStoryDistributionId(),
|
||||
name: 'My Story',
|
||||
allowsReplies: true,
|
||||
isBlockList: false,
|
||||
members: [UUID_1, UUID_2],
|
||||
members: [SERVICE_ID_1, SERVICE_ID_2],
|
||||
senderKeyInfo: {
|
||||
createdAtDate: Date.now(),
|
||||
distributionId: getUuid(),
|
||||
distributionId: generateUuid(),
|
||||
memberDevices: [],
|
||||
},
|
||||
storageID: getUuid(),
|
||||
storageID: generateUuid(),
|
||||
storageVersion: 1,
|
||||
storageNeedsSync: false,
|
||||
storageUnknownFields: undefined,
|
||||
|
@ -146,8 +143,8 @@ describe('sql/storyDistribution', () => {
|
|||
assert.lengthOf(await _getAllStoryDistributionMembers(), 2);
|
||||
|
||||
await modifyStoryDistributionMembers(list.id, {
|
||||
toAdd: [UUID_3, UUID_4],
|
||||
toRemove: [UUID_1],
|
||||
toAdd: [SERVICE_ID_3, SERVICE_ID_4],
|
||||
toRemove: [SERVICE_ID_1],
|
||||
});
|
||||
|
||||
assert.lengthOf(await _getAllStoryDistributions(), 1);
|
||||
|
@ -157,27 +154,27 @@ describe('sql/storyDistribution', () => {
|
|||
assert.lengthOf(allHydratedLists, 1);
|
||||
assert.deepEqual(allHydratedLists[0], {
|
||||
...list,
|
||||
members: [UUID_2, UUID_3, UUID_4],
|
||||
members: [SERVICE_ID_2, SERVICE_ID_3, SERVICE_ID_4],
|
||||
});
|
||||
});
|
||||
|
||||
it('adds and removes with modifyStoryDistributionWithMembers', async () => {
|
||||
const UUID_1 = getUuid();
|
||||
const UUID_2 = getUuid();
|
||||
const UUID_3 = getUuid();
|
||||
const UUID_4 = getUuid();
|
||||
const SERVICE_ID_1 = generateAci();
|
||||
const SERVICE_ID_2 = generateAci();
|
||||
const SERVICE_ID_3 = generateAci();
|
||||
const SERVICE_ID_4 = generateAci();
|
||||
const list: StoryDistributionWithMembersType = {
|
||||
id: getUuid(),
|
||||
id: generateStoryDistributionId(),
|
||||
name: 'My Story',
|
||||
allowsReplies: true,
|
||||
isBlockList: false,
|
||||
members: [UUID_1, UUID_2],
|
||||
members: [SERVICE_ID_1, SERVICE_ID_2],
|
||||
senderKeyInfo: {
|
||||
createdAtDate: Date.now(),
|
||||
distributionId: getUuid(),
|
||||
distributionId: generateUuid(),
|
||||
memberDevices: [],
|
||||
},
|
||||
storageID: getUuid(),
|
||||
storageID: generateUuid(),
|
||||
storageVersion: 1,
|
||||
storageNeedsSync: false,
|
||||
storageUnknownFields: undefined,
|
||||
|
@ -190,8 +187,8 @@ describe('sql/storyDistribution', () => {
|
|||
assert.lengthOf(await _getAllStoryDistributionMembers(), 2);
|
||||
|
||||
await modifyStoryDistributionWithMembers(list, {
|
||||
toAdd: [UUID_3, UUID_4],
|
||||
toRemove: [UUID_1],
|
||||
toAdd: [SERVICE_ID_3, SERVICE_ID_4],
|
||||
toRemove: [SERVICE_ID_1],
|
||||
});
|
||||
|
||||
assert.lengthOf(await _getAllStoryDistributions(), 1);
|
||||
|
@ -201,25 +198,25 @@ describe('sql/storyDistribution', () => {
|
|||
assert.lengthOf(allHydratedLists, 1);
|
||||
assert.deepEqual(allHydratedLists[0], {
|
||||
...list,
|
||||
members: [UUID_2, UUID_3, UUID_4],
|
||||
members: [SERVICE_ID_2, SERVICE_ID_3, SERVICE_ID_4],
|
||||
});
|
||||
});
|
||||
|
||||
it('eliminates duplicates without complaint in createNewStoryDistribution', async () => {
|
||||
const UUID_1 = getUuid();
|
||||
const UUID_2 = getUuid();
|
||||
const SERVICE_ID_1 = generateAci();
|
||||
const SERVICE_ID_2 = generateAci();
|
||||
const list: StoryDistributionWithMembersType = {
|
||||
id: getUuid(),
|
||||
id: generateStoryDistributionId(),
|
||||
name: 'My Story',
|
||||
allowsReplies: true,
|
||||
isBlockList: false,
|
||||
members: [UUID_1, UUID_1, UUID_2],
|
||||
members: [SERVICE_ID_1, SERVICE_ID_1, SERVICE_ID_2],
|
||||
senderKeyInfo: {
|
||||
createdAtDate: Date.now(),
|
||||
distributionId: getUuid(),
|
||||
distributionId: generateUuid(),
|
||||
memberDevices: [],
|
||||
},
|
||||
storageID: getUuid(),
|
||||
storageID: generateUuid(),
|
||||
storageVersion: 1,
|
||||
storageNeedsSync: false,
|
||||
storageUnknownFields: undefined,
|
||||
|
@ -233,6 +230,6 @@ describe('sql/storyDistribution', () => {
|
|||
|
||||
const allHydratedLists = await getAllStoryDistributionsWithMembers();
|
||||
assert.lengthOf(allHydratedLists, 1);
|
||||
assert.deepEqual(allHydratedLists[0].members, [UUID_1, UUID_2]);
|
||||
assert.deepEqual(allHydratedLists[0].members, [SERVICE_ID_1, SERVICE_ID_2]);
|
||||
});
|
||||
});
|
||||
|
|
|
@ -2,10 +2,10 @@
|
|||
// SPDX-License-Identifier: AGPL-3.0-only
|
||||
|
||||
import { assert } from 'chai';
|
||||
import { v4 as generateUuid } from 'uuid';
|
||||
|
||||
import dataInterface from '../../sql/Client';
|
||||
import { UUID } from '../../types/UUID';
|
||||
import type { UUIDStringType } from '../../types/UUID';
|
||||
import { generateAci } from '../../types/ServiceId';
|
||||
|
||||
import type { StoryReadType } from '../../sql/Interface';
|
||||
|
||||
|
@ -16,10 +16,6 @@ const {
|
|||
getLastStoryReadsForAuthor,
|
||||
} = dataInterface;
|
||||
|
||||
function getUuid(): UUIDStringType {
|
||||
return UUID.generate().toString();
|
||||
}
|
||||
|
||||
describe('sql/storyReads', () => {
|
||||
beforeEach(async () => {
|
||||
await _deleteAllStoryReads();
|
||||
|
@ -29,9 +25,9 @@ describe('sql/storyReads', () => {
|
|||
assert.lengthOf(await _getAllStoryReads(), 0);
|
||||
|
||||
const read: StoryReadType = {
|
||||
authorId: getUuid(),
|
||||
conversationId: getUuid(),
|
||||
storyId: getUuid(),
|
||||
authorId: generateAci(),
|
||||
conversationId: generateUuid(),
|
||||
storyId: generateUuid(),
|
||||
storyReadDate: Date.now(),
|
||||
};
|
||||
|
||||
|
@ -45,29 +41,29 @@ describe('sql/storyReads', () => {
|
|||
describe('getLastStoryReadsForAuthor', () => {
|
||||
it('returns n = limit items for author', async () => {
|
||||
const now = Date.now();
|
||||
const authorId = getUuid();
|
||||
const authorId = generateAci();
|
||||
const read1: StoryReadType = {
|
||||
authorId,
|
||||
conversationId: getUuid(),
|
||||
storyId: getUuid(),
|
||||
conversationId: generateUuid(),
|
||||
storyId: generateUuid(),
|
||||
storyReadDate: now - 20,
|
||||
};
|
||||
const read2: StoryReadType = {
|
||||
authorId,
|
||||
conversationId: getUuid(),
|
||||
storyId: getUuid(),
|
||||
conversationId: generateUuid(),
|
||||
storyId: generateUuid(),
|
||||
storyReadDate: now - 10,
|
||||
};
|
||||
const read3: StoryReadType = {
|
||||
authorId,
|
||||
conversationId: getUuid(),
|
||||
storyId: getUuid(),
|
||||
conversationId: generateUuid(),
|
||||
storyId: generateUuid(),
|
||||
storyReadDate: now,
|
||||
};
|
||||
const read4: StoryReadType = {
|
||||
authorId: getUuid(),
|
||||
conversationId: getUuid(),
|
||||
storyId: getUuid(),
|
||||
authorId: generateAci(),
|
||||
conversationId: generateUuid(),
|
||||
storyId: generateUuid(),
|
||||
storyReadDate: now,
|
||||
};
|
||||
|
||||
|
@ -88,30 +84,30 @@ describe('sql/storyReads', () => {
|
|||
|
||||
it('returns only items in provided conversation', async () => {
|
||||
const now = Date.now();
|
||||
const authorId = getUuid();
|
||||
const conversationId = getUuid();
|
||||
const authorId = generateAci();
|
||||
const conversationId = generateUuid();
|
||||
const read1: StoryReadType = {
|
||||
authorId,
|
||||
conversationId,
|
||||
storyId: getUuid(),
|
||||
storyId: generateUuid(),
|
||||
storyReadDate: now - 20,
|
||||
};
|
||||
const read2: StoryReadType = {
|
||||
authorId,
|
||||
conversationId,
|
||||
storyId: getUuid(),
|
||||
storyId: generateUuid(),
|
||||
storyReadDate: now - 10,
|
||||
};
|
||||
const read3: StoryReadType = {
|
||||
authorId,
|
||||
conversationId: getUuid(),
|
||||
storyId: getUuid(),
|
||||
conversationId: generateUuid(),
|
||||
storyId: generateUuid(),
|
||||
storyReadDate: now,
|
||||
};
|
||||
const read4: StoryReadType = {
|
||||
authorId,
|
||||
conversationId: getUuid(),
|
||||
storyId: getUuid(),
|
||||
conversationId: generateUuid(),
|
||||
storyId: generateUuid(),
|
||||
storyReadDate: now,
|
||||
};
|
||||
|
||||
|
|
|
@ -2,10 +2,10 @@
|
|||
// SPDX-License-Identifier: AGPL-3.0-only
|
||||
|
||||
import { assert } from 'chai';
|
||||
import { v4 as generateUuid } from 'uuid';
|
||||
|
||||
import dataInterface from '../../sql/Client';
|
||||
import { UUID } from '../../types/UUID';
|
||||
import type { UUIDStringType } from '../../types/UUID';
|
||||
import { generateAci } from '../../types/ServiceId';
|
||||
|
||||
import type { MessageAttributesType } from '../../model-types.d';
|
||||
import { ReadStatus } from '../../messages/MessageReadStatus';
|
||||
|
@ -21,10 +21,6 @@ const {
|
|||
getOldestUnreadMentionOfMeForConversation,
|
||||
} = dataInterface;
|
||||
|
||||
function getUuid(): UUIDStringType {
|
||||
return UUID.generate().toString();
|
||||
}
|
||||
|
||||
describe('sql/timelineFetches', () => {
|
||||
beforeEach(async () => {
|
||||
await removeAll();
|
||||
|
@ -35,12 +31,12 @@ describe('sql/timelineFetches', () => {
|
|||
assert.lengthOf(await _getAllMessages(), 0);
|
||||
|
||||
const now = Date.now();
|
||||
const conversationId = getUuid();
|
||||
const storyId = getUuid();
|
||||
const ourUuid = getUuid();
|
||||
const conversationId = generateUuid();
|
||||
const storyId = generateUuid();
|
||||
const ourAci = generateAci();
|
||||
|
||||
const message1: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'message 1',
|
||||
type: 'outgoing',
|
||||
conversationId,
|
||||
|
@ -49,7 +45,7 @@ describe('sql/timelineFetches', () => {
|
|||
timestamp: now - 20,
|
||||
};
|
||||
const message2: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'message 2',
|
||||
type: 'outgoing',
|
||||
conversationId,
|
||||
|
@ -58,16 +54,16 @@ describe('sql/timelineFetches', () => {
|
|||
timestamp: now - 10,
|
||||
};
|
||||
const message3: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'message 3',
|
||||
type: 'outgoing',
|
||||
conversationId: getUuid(),
|
||||
conversationId: generateUuid(),
|
||||
sent_at: now,
|
||||
received_at: now,
|
||||
timestamp: now,
|
||||
};
|
||||
const message4: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'message 4',
|
||||
type: 'story',
|
||||
conversationId,
|
||||
|
@ -77,7 +73,7 @@ describe('sql/timelineFetches', () => {
|
|||
storyId,
|
||||
};
|
||||
const message5: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'message 5',
|
||||
type: 'outgoing',
|
||||
conversationId,
|
||||
|
@ -89,7 +85,7 @@ describe('sql/timelineFetches', () => {
|
|||
|
||||
await saveMessages([message1, message2, message3, message4, message5], {
|
||||
forceSave: true,
|
||||
ourUuid,
|
||||
ourAci,
|
||||
});
|
||||
|
||||
assert.lengthOf(await _getAllMessages(), 5);
|
||||
|
@ -111,12 +107,12 @@ describe('sql/timelineFetches', () => {
|
|||
assert.lengthOf(await _getAllMessages(), 0);
|
||||
|
||||
const now = Date.now();
|
||||
const conversationId = getUuid();
|
||||
const storyId = getUuid();
|
||||
const ourUuid = getUuid();
|
||||
const conversationId = generateUuid();
|
||||
const storyId = generateUuid();
|
||||
const ourAci = generateAci();
|
||||
|
||||
const message1: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'story',
|
||||
type: 'story',
|
||||
conversationId,
|
||||
|
@ -126,7 +122,7 @@ describe('sql/timelineFetches', () => {
|
|||
storyId,
|
||||
};
|
||||
const message2: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'story reply 1',
|
||||
type: 'outgoing',
|
||||
conversationId,
|
||||
|
@ -136,7 +132,7 @@ describe('sql/timelineFetches', () => {
|
|||
storyId,
|
||||
};
|
||||
const message3: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'normal message',
|
||||
type: 'outgoing',
|
||||
conversationId,
|
||||
|
@ -147,7 +143,7 @@ describe('sql/timelineFetches', () => {
|
|||
|
||||
await saveMessages([message1, message2, message3], {
|
||||
forceSave: true,
|
||||
ourUuid,
|
||||
ourAci,
|
||||
});
|
||||
|
||||
assert.lengthOf(await _getAllMessages(), 3);
|
||||
|
@ -166,12 +162,12 @@ describe('sql/timelineFetches', () => {
|
|||
assert.lengthOf(await _getAllMessages(), 0);
|
||||
|
||||
const now = Date.now();
|
||||
const conversationId = getUuid();
|
||||
const storyId = getUuid();
|
||||
const ourUuid = getUuid();
|
||||
const conversationId = generateUuid();
|
||||
const storyId = generateUuid();
|
||||
const ourAci = generateAci();
|
||||
|
||||
const message1: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'story',
|
||||
type: 'incoming',
|
||||
conversationId,
|
||||
|
@ -181,7 +177,7 @@ describe('sql/timelineFetches', () => {
|
|||
storyId,
|
||||
};
|
||||
const message2: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'story reply 1',
|
||||
type: 'outgoing',
|
||||
conversationId,
|
||||
|
@ -191,7 +187,7 @@ describe('sql/timelineFetches', () => {
|
|||
storyId,
|
||||
};
|
||||
const message3: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'normal message',
|
||||
type: 'outgoing',
|
||||
conversationId,
|
||||
|
@ -202,7 +198,7 @@ describe('sql/timelineFetches', () => {
|
|||
|
||||
await saveMessages([message1, message2, message3], {
|
||||
forceSave: true,
|
||||
ourUuid,
|
||||
ourAci,
|
||||
});
|
||||
|
||||
assert.lengthOf(await _getAllMessages(), 3);
|
||||
|
@ -221,11 +217,11 @@ describe('sql/timelineFetches', () => {
|
|||
assert.lengthOf(await _getAllMessages(), 0);
|
||||
|
||||
const target = Date.now();
|
||||
const conversationId = getUuid();
|
||||
const ourUuid = getUuid();
|
||||
const conversationId = generateUuid();
|
||||
const ourAci = generateAci();
|
||||
|
||||
const message1: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'message 1',
|
||||
type: 'outgoing',
|
||||
conversationId,
|
||||
|
@ -234,7 +230,7 @@ describe('sql/timelineFetches', () => {
|
|||
timestamp: target - 10,
|
||||
};
|
||||
const message2: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'message 2',
|
||||
type: 'outgoing',
|
||||
conversationId,
|
||||
|
@ -243,7 +239,7 @@ describe('sql/timelineFetches', () => {
|
|||
timestamp: target,
|
||||
};
|
||||
const message3: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'message 3',
|
||||
type: 'outgoing',
|
||||
conversationId,
|
||||
|
@ -254,7 +250,7 @@ describe('sql/timelineFetches', () => {
|
|||
|
||||
await saveMessages([message1, message2, message3], {
|
||||
forceSave: true,
|
||||
ourUuid,
|
||||
ourAci,
|
||||
});
|
||||
|
||||
assert.lengthOf(await _getAllMessages(), 3);
|
||||
|
@ -275,11 +271,11 @@ describe('sql/timelineFetches', () => {
|
|||
assert.lengthOf(await _getAllMessages(), 0);
|
||||
|
||||
const target = Date.now();
|
||||
const conversationId = getUuid();
|
||||
const ourUuid = getUuid();
|
||||
const conversationId = generateUuid();
|
||||
const ourAci = generateAci();
|
||||
|
||||
const message1: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'message 1',
|
||||
type: 'outgoing',
|
||||
conversationId,
|
||||
|
@ -288,7 +284,7 @@ describe('sql/timelineFetches', () => {
|
|||
timestamp: target,
|
||||
};
|
||||
const message2: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'message 2',
|
||||
type: 'outgoing',
|
||||
conversationId,
|
||||
|
@ -297,7 +293,7 @@ describe('sql/timelineFetches', () => {
|
|||
timestamp: target,
|
||||
};
|
||||
const message3: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'message 3',
|
||||
type: 'outgoing',
|
||||
conversationId,
|
||||
|
@ -308,7 +304,7 @@ describe('sql/timelineFetches', () => {
|
|||
|
||||
await saveMessages([message1, message2, message3], {
|
||||
forceSave: true,
|
||||
ourUuid,
|
||||
ourAci,
|
||||
});
|
||||
|
||||
assert.lengthOf(await _getAllMessages(), 3);
|
||||
|
@ -333,11 +329,11 @@ describe('sql/timelineFetches', () => {
|
|||
assert.lengthOf(await _getAllMessages(), 0);
|
||||
|
||||
const target = Date.now();
|
||||
const conversationId = getUuid();
|
||||
const ourUuid = getUuid();
|
||||
const conversationId = generateUuid();
|
||||
const ourAci = generateAci();
|
||||
|
||||
const message1: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'message 1',
|
||||
type: 'outgoing',
|
||||
conversationId,
|
||||
|
@ -346,7 +342,7 @@ describe('sql/timelineFetches', () => {
|
|||
timestamp: target,
|
||||
};
|
||||
const message2: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'message 2',
|
||||
type: 'outgoing',
|
||||
conversationId,
|
||||
|
@ -355,7 +351,7 @@ describe('sql/timelineFetches', () => {
|
|||
timestamp: target,
|
||||
};
|
||||
const message3: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'message 3',
|
||||
type: 'outgoing',
|
||||
conversationId,
|
||||
|
@ -366,7 +362,7 @@ describe('sql/timelineFetches', () => {
|
|||
|
||||
await saveMessages([message1, message2, message3], {
|
||||
forceSave: true,
|
||||
ourUuid,
|
||||
ourAci,
|
||||
});
|
||||
|
||||
assert.lengthOf(await _getAllMessages(), 3);
|
||||
|
@ -391,21 +387,21 @@ describe('sql/timelineFetches', () => {
|
|||
assert.lengthOf(await _getAllMessages(), 0);
|
||||
|
||||
const now = Date.now();
|
||||
const conversationId = getUuid();
|
||||
const storyId = getUuid();
|
||||
const ourUuid = getUuid();
|
||||
const conversationId = generateUuid();
|
||||
const storyId = generateUuid();
|
||||
const ourAci = generateAci();
|
||||
|
||||
const message1: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'message 1',
|
||||
type: 'outgoing',
|
||||
conversationId: getUuid(),
|
||||
conversationId: generateUuid(),
|
||||
sent_at: now,
|
||||
received_at: now,
|
||||
timestamp: now,
|
||||
};
|
||||
const message2: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'message 2',
|
||||
type: 'story',
|
||||
conversationId,
|
||||
|
@ -415,7 +411,7 @@ describe('sql/timelineFetches', () => {
|
|||
storyId,
|
||||
};
|
||||
const message3: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'message 3',
|
||||
type: 'outgoing',
|
||||
conversationId,
|
||||
|
@ -425,7 +421,7 @@ describe('sql/timelineFetches', () => {
|
|||
storyId,
|
||||
};
|
||||
const message4: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'message 4',
|
||||
type: 'outgoing',
|
||||
conversationId,
|
||||
|
@ -434,7 +430,7 @@ describe('sql/timelineFetches', () => {
|
|||
timestamp: now + 10,
|
||||
};
|
||||
const message5: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'message 5',
|
||||
type: 'outgoing',
|
||||
conversationId,
|
||||
|
@ -445,7 +441,7 @@ describe('sql/timelineFetches', () => {
|
|||
|
||||
await saveMessages([message1, message2, message3, message4, message5], {
|
||||
forceSave: true,
|
||||
ourUuid,
|
||||
ourAci,
|
||||
});
|
||||
|
||||
assert.lengthOf(await _getAllMessages(), 5);
|
||||
|
@ -466,12 +462,12 @@ describe('sql/timelineFetches', () => {
|
|||
assert.lengthOf(await _getAllMessages(), 0);
|
||||
|
||||
const now = Date.now();
|
||||
const conversationId = getUuid();
|
||||
const storyId = getUuid();
|
||||
const ourUuid = getUuid();
|
||||
const conversationId = generateUuid();
|
||||
const storyId = generateUuid();
|
||||
const ourAci = generateAci();
|
||||
|
||||
const message1: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'message 1',
|
||||
type: 'story',
|
||||
conversationId,
|
||||
|
@ -481,7 +477,7 @@ describe('sql/timelineFetches', () => {
|
|||
storyId,
|
||||
};
|
||||
const message2: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'message 2',
|
||||
type: 'outgoing',
|
||||
conversationId,
|
||||
|
@ -491,7 +487,7 @@ describe('sql/timelineFetches', () => {
|
|||
storyId,
|
||||
};
|
||||
const message3: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'message 3',
|
||||
type: 'outgoing',
|
||||
conversationId,
|
||||
|
@ -502,7 +498,7 @@ describe('sql/timelineFetches', () => {
|
|||
|
||||
await saveMessages([message1, message2, message3], {
|
||||
forceSave: true,
|
||||
ourUuid,
|
||||
ourAci,
|
||||
});
|
||||
|
||||
assert.lengthOf(await _getAllMessages(), 3);
|
||||
|
@ -522,11 +518,11 @@ describe('sql/timelineFetches', () => {
|
|||
assert.lengthOf(await _getAllMessages(), 0);
|
||||
|
||||
const target = Date.now();
|
||||
const conversationId = getUuid();
|
||||
const ourUuid = getUuid();
|
||||
const conversationId = generateUuid();
|
||||
const ourAci = generateAci();
|
||||
|
||||
const message1: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'message 1',
|
||||
type: 'outgoing',
|
||||
conversationId,
|
||||
|
@ -535,7 +531,7 @@ describe('sql/timelineFetches', () => {
|
|||
timestamp: target - 10,
|
||||
};
|
||||
const message2: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'message 2',
|
||||
type: 'outgoing',
|
||||
conversationId,
|
||||
|
@ -544,7 +540,7 @@ describe('sql/timelineFetches', () => {
|
|||
timestamp: target,
|
||||
};
|
||||
const message3: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'message 3',
|
||||
type: 'outgoing',
|
||||
conversationId,
|
||||
|
@ -555,7 +551,7 @@ describe('sql/timelineFetches', () => {
|
|||
|
||||
await saveMessages([message1, message2, message3], {
|
||||
forceSave: true,
|
||||
ourUuid,
|
||||
ourAci,
|
||||
});
|
||||
|
||||
assert.lengthOf(await _getAllMessages(), 3);
|
||||
|
@ -576,21 +572,21 @@ describe('sql/timelineFetches', () => {
|
|||
assert.lengthOf(await _getAllMessages(), 0);
|
||||
|
||||
const target = Date.now();
|
||||
const conversationId = getUuid();
|
||||
const ourUuid = getUuid();
|
||||
const conversationId = generateUuid();
|
||||
const ourAci = generateAci();
|
||||
|
||||
const message1: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'message 1',
|
||||
type: 'outgoing',
|
||||
conversationId,
|
||||
sent_at: target - 10,
|
||||
received_at: target - 10,
|
||||
timestamp: target - 10,
|
||||
storyId: getUuid(),
|
||||
storyId: generateUuid(),
|
||||
};
|
||||
const message2: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'message 2',
|
||||
type: 'outgoing',
|
||||
conversationId,
|
||||
|
@ -599,19 +595,19 @@ describe('sql/timelineFetches', () => {
|
|||
timestamp: target + 20,
|
||||
};
|
||||
const message3: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'message 3',
|
||||
type: 'outgoing',
|
||||
conversationId,
|
||||
sent_at: target + 10,
|
||||
received_at: target + 10,
|
||||
timestamp: target + 10,
|
||||
storyId: getUuid(),
|
||||
storyId: generateUuid(),
|
||||
};
|
||||
|
||||
await saveMessages([message1, message2, message3], {
|
||||
forceSave: true,
|
||||
ourUuid,
|
||||
ourAci,
|
||||
});
|
||||
|
||||
assert.lengthOf(await _getAllMessages(), 3);
|
||||
|
@ -632,11 +628,11 @@ describe('sql/timelineFetches', () => {
|
|||
assert.lengthOf(await _getAllMessages(), 0);
|
||||
|
||||
const target = Date.now();
|
||||
const conversationId = getUuid();
|
||||
const ourUuid = getUuid();
|
||||
const conversationId = generateUuid();
|
||||
const ourAci = generateAci();
|
||||
|
||||
const message1: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'message 1',
|
||||
type: 'outgoing',
|
||||
conversationId,
|
||||
|
@ -645,7 +641,7 @@ describe('sql/timelineFetches', () => {
|
|||
timestamp: target,
|
||||
};
|
||||
const message2: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'message 2',
|
||||
type: 'outgoing',
|
||||
conversationId,
|
||||
|
@ -654,7 +650,7 @@ describe('sql/timelineFetches', () => {
|
|||
timestamp: target,
|
||||
};
|
||||
const message3: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'message 3',
|
||||
type: 'outgoing',
|
||||
conversationId,
|
||||
|
@ -665,7 +661,7 @@ describe('sql/timelineFetches', () => {
|
|||
|
||||
await saveMessages([message1, message2, message3], {
|
||||
forceSave: true,
|
||||
ourUuid,
|
||||
ourAci,
|
||||
});
|
||||
|
||||
assert.lengthOf(await _getAllMessages(), 3);
|
||||
|
@ -691,12 +687,12 @@ describe('sql/timelineFetches', () => {
|
|||
assert.lengthOf(await _getAllMessages(), 0);
|
||||
|
||||
const target = Date.now();
|
||||
const conversationId = getUuid();
|
||||
const storyId = getUuid();
|
||||
const ourUuid = getUuid();
|
||||
const conversationId = generateUuid();
|
||||
const storyId = generateUuid();
|
||||
const ourAci = generateAci();
|
||||
|
||||
const story: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'story',
|
||||
type: 'story',
|
||||
conversationId,
|
||||
|
@ -705,7 +701,7 @@ describe('sql/timelineFetches', () => {
|
|||
timestamp: target - 10,
|
||||
};
|
||||
const oldestInStory: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'oldestInStory',
|
||||
type: 'outgoing',
|
||||
conversationId,
|
||||
|
@ -715,7 +711,7 @@ describe('sql/timelineFetches', () => {
|
|||
storyId,
|
||||
};
|
||||
const oldest: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'oldest',
|
||||
type: 'outgoing',
|
||||
conversationId,
|
||||
|
@ -724,7 +720,7 @@ describe('sql/timelineFetches', () => {
|
|||
timestamp: target - 8,
|
||||
};
|
||||
const oldestUnseen: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'oldestUnseen',
|
||||
type: 'incoming',
|
||||
conversationId,
|
||||
|
@ -734,7 +730,7 @@ describe('sql/timelineFetches', () => {
|
|||
readStatus: ReadStatus.Unread,
|
||||
};
|
||||
const oldestStoryUnread: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'oldestStoryUnread',
|
||||
type: 'incoming',
|
||||
conversationId,
|
||||
|
@ -745,7 +741,7 @@ describe('sql/timelineFetches', () => {
|
|||
storyId,
|
||||
};
|
||||
const anotherUnread: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'anotherUnread',
|
||||
type: 'incoming',
|
||||
conversationId,
|
||||
|
@ -755,7 +751,7 @@ describe('sql/timelineFetches', () => {
|
|||
readStatus: ReadStatus.Unread,
|
||||
};
|
||||
const newestInStory: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'newestStory',
|
||||
type: 'outgoing',
|
||||
conversationId,
|
||||
|
@ -765,7 +761,7 @@ describe('sql/timelineFetches', () => {
|
|||
storyId,
|
||||
};
|
||||
const newest: MessageAttributesType = {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'newest',
|
||||
type: 'outgoing',
|
||||
conversationId,
|
||||
|
@ -785,7 +781,7 @@ describe('sql/timelineFetches', () => {
|
|||
newestInStory,
|
||||
newest,
|
||||
],
|
||||
{ forceSave: true, ourUuid }
|
||||
{ forceSave: true, ourAci }
|
||||
);
|
||||
|
||||
assert.lengthOf(await _getAllMessages(), 8);
|
||||
|
@ -832,8 +828,8 @@ describe('sql/timelineFetches', () => {
|
|||
assert.lengthOf(await _getAllMessages(), 0);
|
||||
|
||||
const target = Date.now();
|
||||
const conversationId = getUuid();
|
||||
const ourUuid = getUuid();
|
||||
const conversationId = generateUuid();
|
||||
const ourAci = generateAci();
|
||||
|
||||
const readMentionsMe: Partial<MessageAttributesType> = {
|
||||
id: 'readMentionsMe',
|
||||
|
@ -865,7 +861,7 @@ describe('sql/timelineFetches', () => {
|
|||
const formattedMessages = messages.map<MessageAttributesType>(
|
||||
(message, idx) => {
|
||||
return {
|
||||
id: getUuid(),
|
||||
id: generateUuid(),
|
||||
body: 'body',
|
||||
type: 'incoming',
|
||||
sent_at: target - messages.length + idx,
|
||||
|
@ -877,7 +873,7 @@ describe('sql/timelineFetches', () => {
|
|||
}
|
||||
);
|
||||
|
||||
await saveMessages(formattedMessages, { forceSave: true, ourUuid });
|
||||
await saveMessages(formattedMessages, { forceSave: true, ourAci });
|
||||
|
||||
assert.lengthOf(await _getAllMessages(), 4);
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue