Introduce Service Id Types
Co-authored-by: Scott Nonnenberg <scott@signal.org>
This commit is contained in:
parent
414c0a58d3
commit
366b875fd2
269 changed files with 5832 additions and 5550 deletions
|
@ -2,10 +2,10 @@
|
|||
// SPDX-License-Identifier: AGPL-3.0-only
|
||||
|
||||
import { assert } from 'chai';
|
||||
import { v4 as generateUuid } from 'uuid';
|
||||
|
||||
import dataInterface from '../../sql/Client';
|
||||
import { UUID } from '../../types/UUID';
|
||||
import type { UUIDStringType } from '../../types/UUID';
|
||||
import { generateAci } from '../../types/ServiceId';
|
||||
|
||||
import type { 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);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue