Introduce Service Id Types

Co-authored-by: Scott Nonnenberg <scott@signal.org>
This commit is contained in:
Fedor Indutny 2023-08-10 18:43:33 +02:00 committed by Jamie Kyle
parent 414c0a58d3
commit 366b875fd2
269 changed files with 5832 additions and 5550 deletions

View file

@ -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);

View file

@ -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,
});

View file

@ -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',

View file

@ -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',

View file

@ -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();

View file

@ -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);

View file

@ -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);

View file

@ -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,
}
);

View file

@ -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);

View file

@ -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);

View file

@ -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);

View file

@ -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]);
});
});

View file

@ -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,
};

View file

@ -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);