51 lines
1.4 KiB
TypeScript
51 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);
|
|
});
|
|
});
|