56 lines
1.6 KiB
TypeScript
56 lines
1.6 KiB
TypeScript
|
// Copyright 2021 Signal Messenger, LLC
|
||
|
// SPDX-License-Identifier: AGPL-3.0-only
|
||
|
|
||
|
// We want to cast to `any` because we're passing an unexpected field.
|
||
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
||
|
|
||
|
import { assert } from 'chai';
|
||
|
import { ReadStatus } from '../../messages/MessageReadStatus';
|
||
|
|
||
|
import { migrateLegacyReadStatus } from '../../messages/migrateLegacyReadStatus';
|
||
|
|
||
|
describe('migrateLegacyReadStatus', () => {
|
||
|
it("doesn't migrate messages that already have the modern read state", () => {
|
||
|
assert.isUndefined(
|
||
|
migrateLegacyReadStatus({ readStatus: ReadStatus.Read })
|
||
|
);
|
||
|
assert.isUndefined(
|
||
|
migrateLegacyReadStatus({ readStatus: ReadStatus.Unread })
|
||
|
);
|
||
|
});
|
||
|
|
||
|
it('converts legacy read values to "read"', () => {
|
||
|
assert.strictEqual(migrateLegacyReadStatus({}), ReadStatus.Read);
|
||
|
assert.strictEqual(
|
||
|
migrateLegacyReadStatus({ unread: 0 } as any),
|
||
|
ReadStatus.Read
|
||
|
);
|
||
|
assert.strictEqual(
|
||
|
migrateLegacyReadStatus({ unread: false } as any),
|
||
|
ReadStatus.Read
|
||
|
);
|
||
|
});
|
||
|
|
||
|
it('converts legacy unread values to "unread"', () => {
|
||
|
assert.strictEqual(
|
||
|
migrateLegacyReadStatus({ unread: 1 } as any),
|
||
|
ReadStatus.Unread
|
||
|
);
|
||
|
assert.strictEqual(
|
||
|
migrateLegacyReadStatus({ unread: true } as any),
|
||
|
ReadStatus.Unread
|
||
|
);
|
||
|
});
|
||
|
|
||
|
it('converts unexpected truthy values to "unread"', () => {
|
||
|
assert.strictEqual(
|
||
|
migrateLegacyReadStatus({ unread: 99 } as any),
|
||
|
ReadStatus.Unread
|
||
|
);
|
||
|
assert.strictEqual(
|
||
|
migrateLegacyReadStatus({ unread: 'wow!' } as any),
|
||
|
ReadStatus.Unread
|
||
|
);
|
||
|
});
|
||
|
});
|