Move receipts and view/read syncs to new syncTasks system

Co-authored-by: Scott Nonnenberg <scott@signal.org>
This commit is contained in:
automated-signal 2024-06-17 19:36:57 -05:00 committed by GitHub
parent 949104c316
commit b95dd1a70f
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
33 changed files with 1242 additions and 612 deletions

View file

@ -7,10 +7,13 @@ import { assert } from 'chai';
import { type AciString, generateAci } from '../types/ServiceId';
import type { MessageAttributesType } from '../model-types';
import { SendStatus } from '../messages/MessageSendState';
import {
type MessageReceiptAttributesType,
import type {
MessageReceiptAttributesType,
MessageReceiptType,
} from '../messageModifiers/MessageReceipts';
import {
onReceipt,
messageReceiptTypeSchema,
} from '../messageModifiers/MessageReceipts';
import { ReadStatus } from '../messages/MessageReadStatus';
@ -31,14 +34,16 @@ describe('MessageReceipts', () => {
): MessageReceiptAttributesType {
return {
envelopeId: uuid(),
messageSentAt,
receiptTimestamp: 1,
removeFromMessageReceiverCache: () => null,
sourceConversationId,
sourceDevice: 1,
sourceServiceId: generateAci(),
type,
wasSentEncrypted: true,
syncTaskId: uuid(),
receiptSync: {
messageSentAt,
receiptTimestamp: 1,
sourceConversationId,
sourceDevice: 1,
sourceServiceId: generateAci(),
type,
wasSentEncrypted: true,
},
};
}
it('processes all receipts in a batch', async () => {
@ -78,10 +83,18 @@ describe('MessageReceipts', () => {
});
await Promise.all([
onReceipt(generateReceipt('aaaa', sentAt, MessageReceiptType.Delivery)),
onReceipt(generateReceipt('bbbb', sentAt, MessageReceiptType.Delivery)),
onReceipt(generateReceipt('cccc', sentAt, MessageReceiptType.Read)),
onReceipt(generateReceipt('aaaa', sentAt, MessageReceiptType.Read)),
onReceipt(
generateReceipt('aaaa', sentAt, messageReceiptTypeSchema.enum.Delivery)
),
onReceipt(
generateReceipt('bbbb', sentAt, messageReceiptTypeSchema.enum.Delivery)
),
onReceipt(
generateReceipt('cccc', sentAt, messageReceiptTypeSchema.enum.Read)
),
onReceipt(
generateReceipt('aaaa', sentAt, messageReceiptTypeSchema.enum.Read)
),
]);
const messageFromDatabase = await window.Signal.Data.getMessageById(id);
@ -154,20 +167,48 @@ describe('MessageReceipts', () => {
await Promise.all([
// send receipts for original message
onReceipt(generateReceipt('aaaa', sentAt, MessageReceiptType.Delivery)),
onReceipt(generateReceipt('bbbb', sentAt, MessageReceiptType.Delivery)),
onReceipt(generateReceipt('cccc', sentAt, MessageReceiptType.Read)),
onReceipt(generateReceipt('aaaa', sentAt, MessageReceiptType.Read)),
onReceipt(
generateReceipt('aaaa', sentAt, messageReceiptTypeSchema.enum.Delivery)
),
onReceipt(
generateReceipt('bbbb', sentAt, messageReceiptTypeSchema.enum.Delivery)
),
onReceipt(
generateReceipt('cccc', sentAt, messageReceiptTypeSchema.enum.Read)
),
onReceipt(
generateReceipt('aaaa', sentAt, messageReceiptTypeSchema.enum.Read)
),
// and send receipts for edited message
onReceipt(
generateReceipt('aaaa', editedSentAt, MessageReceiptType.Delivery)
generateReceipt(
'aaaa',
editedSentAt,
messageReceiptTypeSchema.enum.Delivery
)
),
onReceipt(
generateReceipt('bbbb', editedSentAt, MessageReceiptType.Delivery)
generateReceipt(
'bbbb',
editedSentAt,
messageReceiptTypeSchema.enum.Delivery
)
),
onReceipt(
generateReceipt(
'cccc',
editedSentAt,
messageReceiptTypeSchema.enum.Read
)
),
onReceipt(
generateReceipt(
'bbbb',
editedSentAt,
messageReceiptTypeSchema.enum.Read
)
),
onReceipt(generateReceipt('cccc', editedSentAt, MessageReceiptType.Read)),
onReceipt(generateReceipt('bbbb', editedSentAt, MessageReceiptType.Read)),
]);
const messageFromDatabase = await window.Signal.Data.getMessageById(id);