81 lines
1.7 KiB
TypeScript
81 lines
1.7 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';
|
||
|
|
||
|
describe('SQL/updateToSchemaVersion1310', () => {
|
||
|
let db: WritableDB;
|
||
|
|
||
|
afterEach(() => {
|
||
|
db.close();
|
||
|
});
|
||
|
|
||
|
beforeEach(() => {
|
||
|
db = createDB();
|
||
|
updateToVersion(db, 1300);
|
||
|
});
|
||
|
|
||
|
it('leaves absent muteExpiresAt untouched', () => {
|
||
|
const convos = [
|
||
|
{
|
||
|
id: 'convo',
|
||
|
expireTimerVersion: 1,
|
||
|
json: {},
|
||
|
},
|
||
|
];
|
||
|
insertData(db, 'conversations', convos);
|
||
|
updateToVersion(db, 1310);
|
||
|
|
||
|
assert.deepStrictEqual(getTableData(db, 'conversations'), convos);
|
||
|
});
|
||
|
|
||
|
it('leaves regular muteExpiresAt untouched', () => {
|
||
|
const convos = [
|
||
|
{
|
||
|
id: 'convo',
|
||
|
expireTimerVersion: 1,
|
||
|
json: {
|
||
|
muteExpiresAt: 123,
|
||
|
},
|
||
|
},
|
||
|
{
|
||
|
id: 'convo-2',
|
||
|
expireTimerVersion: 1,
|
||
|
json: {
|
||
|
muteExpiresAt: 8640000000000000 - 1,
|
||
|
},
|
||
|
},
|
||
|
];
|
||
|
insertData(db, 'conversations', convos);
|
||
|
updateToVersion(db, 1310);
|
||
|
|
||
|
assert.deepStrictEqual(getTableData(db, 'conversations'), convos);
|
||
|
});
|
||
|
|
||
|
it('promotes MAX_SAFE_DATE to MAX_SAFE_INTEGER', () => {
|
||
|
insertData(db, 'conversations', [
|
||
|
{
|
||
|
id: 'convo',
|
||
|
expireTimerVersion: 1,
|
||
|
json: {
|
||
|
muteExpiresAt: 8640000000000000,
|
||
|
},
|
||
|
},
|
||
|
]);
|
||
|
updateToVersion(db, 1310);
|
||
|
|
||
|
assert.deepStrictEqual(getTableData(db, 'conversations'), [
|
||
|
{
|
||
|
id: 'convo',
|
||
|
expireTimerVersion: 1,
|
||
|
json: {
|
||
|
muteExpiresAt: Number.MAX_SAFE_INTEGER,
|
||
|
},
|
||
|
},
|
||
|
]);
|
||
|
});
|
||
|
});
|