Signal-Desktop/ts/test-both/sql/cleanMessageData_test.ts

52 lines
1.4 KiB
TypeScript

// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { assert } from 'chai';
import { _cleanMessageData } from '../../sql/Client';
import { IMAGE_GIF } from '../../types/MIME';
describe('_cleanMessageData', () => {
it('throws if message is missing received_at', () => {
assert.throws(() => {
// eslint-disable-next-line @typescript-eslint/no-explicit-any
_cleanMessageData({} as any);
}, 'received_at');
});
it('removes `data` field in attachment if it is not a typed array', () => {
const data = new Uint8Array([1, 2, 3]);
const message = {
id: 'something',
type: 'incoming' as const,
sent_at: Date.now(),
conversationId: 'conversation-id',
received_at: Date.now(),
timestamp: Date.now(),
attachments: [
{
contentType: IMAGE_GIF,
size: 4,
// eslint-disable-next-line @typescript-eslint/no-explicit-any
data: 1 as any,
},
{
contentType: IMAGE_GIF,
size: 4,
data: {},
},
{
size: 4,
contentType: IMAGE_GIF,
data,
},
],
};
const actual = _cleanMessageData(message);
assert.isUndefined(actual.attachments?.[0].data);
assert.isUndefined(actual.attachments?.[1].data);
assert.strictEqual(actual.attachments?.[2].data, data);
});
});