Files
Desktop/ts/test-node/sql/migration_1580_test.node.ts
2025-12-05 15:49:10 -08:00

109 lines
2.6 KiB
TypeScript

// Copyright 2025 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { assert } from 'chai';
import { type WritableDB } from '../../sql/Interface.std.js';
import {
createDB,
getTableData,
insertData,
updateToVersion,
} from './helpers.node.js';
describe('SQL/updateToSchemaVersion1580', () => {
let db: WritableDB;
beforeEach(() => {
db = createDB();
updateToVersion(db, 1570);
});
afterEach(() => {
db.close();
});
it('deletes any expired group story replies', () => {
insertData(db, 'conversations', [
{
id: 'groupConvoId',
type: 'group',
},
{
id: 'directConvoId',
type: 'private',
},
]);
insertData(db, 'messages', [
{
id: 'story-that-exists',
type: 'story',
conversationId: 'groupConvoId',
timestamp: Date.now(),
},
{
id: 'doe-story',
type: 'story',
conversationId: 'groupConvoId',
timestamp: Date.now(),
isErased: 1,
},
{
id: 'group-reply-to-existing-story',
conversationId: 'groupConvoId',
timestamp: Date.now(),
storyId: 'story-that-exists',
},
{
id: 'group-reply-to-non-existing-story',
conversationId: 'groupConvoId',
timestamp: Date.now(),
storyId: 'story-that-does-not-exist',
},
{
id: 'group-reply-to-doe-story',
conversationId: 'groupConvoId',
timestamp: Date.now(),
storyId: 'doe-story',
},
{
id: 'direct-reply-to-existing-story',
conversationId: 'directConvoId',
timestamp: Date.now(),
storyId: 'storyThatExists',
},
{
id: 'direct-reply-to-non-existing-story',
conversationId: 'directConvoId',
timestamp: Date.now(),
storyId: 'storyThatDoesNotExist',
},
{
id: 'normal-group-message',
conversationId: 'groupConvoId',
timestamp: Date.now(),
},
{
id: 'normal-direct-message',
conversationId: 'directConvoId',
timestamp: Date.now(),
},
]);
updateToVersion(db, 1580);
assert.deepStrictEqual(
getTableData(db, 'messages').map(row => row.id),
[
'story-that-exists',
'doe-story',
'group-reply-to-existing-story',
// 'group-reply-to-non-existing-story', <-- DELETED!
// 'group-reply-to-doe-story', <-- DELETED!
'direct-reply-to-existing-story',
'direct-reply-to-non-existing-story',
'normal-group-message',
'normal-direct-message',
]
);
});
});