signal-desktop/ts/test-node/sql/migration_1410_test.ts
2025-07-17 12:06:50 -04:00

133 lines
2.9 KiB
TypeScript

// Copyright 2025 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { assert } from 'chai';
import { type WritableDB } from '../../sql/Interface';
import { createDB, updateToVersion, insertData, getTableData } from './helpers';
import { createOrUpdate, getById } from '../../sql/util';
describe('SQL/updateToSchemaVersion1410', () => {
let db: WritableDB;
afterEach(() => {
db.close();
});
beforeEach(() => {
db = createDB();
updateToVersion(db, 1400);
});
it('deletes conversation wallpaper data if exists', () => {
const convos = [
{
id: 'convo-1',
expireTimerVersion: 1,
json: {
wallpaperPreset: 42,
wallpaperPhotoPointerBase64: 'base64',
dimWallpaperInDarkMode: false,
autoBubbleColor: true,
profileName: 'Alice',
},
},
{
id: 'convo-2',
expireTimerVersion: 3,
json: {
wallpaperPreset: 42,
wallpaperPhotoPointerBase64: 'base64',
profileName: 'Bob',
},
},
{
id: 'convo-3',
expireTimerVersion: 4,
json: {
profileName: 'Charlie',
},
},
];
insertData(db, 'conversations', convos);
updateToVersion(db, 1410);
assert.deepStrictEqual(getTableData(db, 'conversations'), [
{
id: 'convo-1',
expireTimerVersion: 1,
json: {
profileName: 'Alice',
},
},
{
id: 'convo-2',
expireTimerVersion: 3,
json: {
profileName: 'Bob',
},
},
{
id: 'convo-3',
expireTimerVersion: 4,
json: {
profileName: 'Charlie',
},
},
]);
});
it('deletes default wallpaper data if exists', () => {
const items = [
{
id: 'defaultWallpaperPhotoPointer',
value: JSON.stringify(new Uint8Array([1, 2, 3])),
},
{
id: 'defaultWallpaperPreset',
value: 12,
},
{
id: 'defaultDimWallpaperInDarkMode',
value: true,
},
{
id: 'defaultAutoBubbleColor',
value: false,
},
{
id: 'otherItem',
value: 'otherItem-shouldBePreserved',
},
];
for (const item of items) {
createOrUpdate(db, 'items', { id: item.id, value: item });
}
updateToVersion(db, 1410);
assert.deepStrictEqual(
getById(db, 'items', 'defaultWallpaperPhotoPointer'),
undefined
);
assert.deepStrictEqual(getById(db, 'items', 'otherItem'), {
id: 'otherItem',
value: {
id: 'otherItem',
value: 'otherItem-shouldBePreserved',
},
});
assert.deepStrictEqual(getTableData(db, 'items'), [
{
id: 'otherItem',
json: {
id: 'otherItem',
value: {
id: 'otherItem',
value: 'otherItem-shouldBePreserved',
},
},
},
]);
});
});