signal-desktop/ts/test-both/util/timestamp_test.ts
2021-09-24 10:01:46 -07:00

54 lines
1.7 KiB
TypeScript

// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { assert } from 'chai';
import {
isOlderThan,
isMoreRecentThan,
toDayMillis,
} from '../../util/timestamp';
const ONE_HOUR = 3600 * 1000;
const ONE_DAY = 24 * ONE_HOUR;
describe('timestamp', () => {
describe('isOlderThan', () => {
it('returns false on recent and future timestamps', () => {
assert.isFalse(isOlderThan(Date.now(), ONE_DAY));
assert.isFalse(isOlderThan(Date.now() + ONE_DAY, ONE_DAY));
});
it('returns true on old enough timestamps', () => {
assert.isFalse(isOlderThan(Date.now() - ONE_DAY + ONE_HOUR, ONE_DAY));
assert.isTrue(isOlderThan(Date.now() - ONE_DAY - ONE_HOUR, ONE_DAY));
});
});
describe('isMoreRecentThan', () => {
it('returns true on recent and future timestamps', () => {
assert.isTrue(isMoreRecentThan(Date.now(), ONE_DAY));
assert.isTrue(isMoreRecentThan(Date.now() + ONE_DAY, ONE_DAY));
});
it('returns false on old enough timestamps', () => {
assert.isTrue(isMoreRecentThan(Date.now() - ONE_DAY + ONE_HOUR, ONE_DAY));
assert.isFalse(
isMoreRecentThan(Date.now() - ONE_DAY - ONE_HOUR, ONE_DAY)
);
});
});
describe('toDayMillis', () => {
const now = new Date();
const today = new Date(toDayMillis(now.valueOf()));
assert.strictEqual(today.getUTCMilliseconds(), 0);
assert.strictEqual(today.getUTCHours(), 0);
assert.strictEqual(today.getUTCMinutes(), 0);
assert.strictEqual(today.getUTCSeconds(), 0);
assert.strictEqual(today.getUTCDate(), now.getUTCDate());
assert.strictEqual(today.getUTCMonth(), now.getUTCMonth());
assert.strictEqual(today.getUTCFullYear(), now.getUTCFullYear());
});
});