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