58 lines
1.7 KiB
TypeScript
58 lines
1.7 KiB
TypeScript
|
// Copyright 2021 Signal Messenger, LLC
|
||
|
// SPDX-License-Identifier: AGPL-3.0-only
|
||
|
|
||
|
import { assert } from 'chai';
|
||
|
|
||
|
import { isOverHourIntoPast, cleanupSessionResets } from '../background';
|
||
|
|
||
|
describe('#isOverHourIntoPast', () => {
|
||
|
it('returns false for now', () => {
|
||
|
assert.isFalse(isOverHourIntoPast(Date.now()));
|
||
|
});
|
||
|
it('returns false for 5 minutes ago', () => {
|
||
|
const fiveMinutesAgo = Date.now() - 5 * 60 * 1000;
|
||
|
assert.isFalse(isOverHourIntoPast(fiveMinutesAgo));
|
||
|
});
|
||
|
it('returns true for 65 minutes ago', () => {
|
||
|
const sixtyFiveMinutesAgo = Date.now() - 65 * 60 * 1000;
|
||
|
assert.isTrue(isOverHourIntoPast(sixtyFiveMinutesAgo));
|
||
|
});
|
||
|
});
|
||
|
|
||
|
describe('#cleanupSessionResets', () => {
|
||
|
it('leaves empty object alone', () => {
|
||
|
window.storage.put('sessionResets', {});
|
||
|
cleanupSessionResets();
|
||
|
const actual = window.storage.get('sessionResets');
|
||
|
|
||
|
const expected = {};
|
||
|
assert.deepEqual(actual, expected);
|
||
|
});
|
||
|
it('filters out any timestamp older than one hour', () => {
|
||
|
const startValue = {
|
||
|
one: Date.now() - 1,
|
||
|
two: Date.now(),
|
||
|
three: Date.now() - 65 * 60 * 1000,
|
||
|
};
|
||
|
window.storage.put('sessionResets', startValue);
|
||
|
cleanupSessionResets();
|
||
|
const actual = window.storage.get('sessionResets');
|
||
|
|
||
|
const expected = window._.pick(startValue, ['one', 'two']);
|
||
|
assert.deepEqual(actual, expected);
|
||
|
});
|
||
|
it('filters out falsey items', () => {
|
||
|
const startValue = {
|
||
|
one: 0,
|
||
|
two: false,
|
||
|
three: Date.now(),
|
||
|
};
|
||
|
window.storage.put('sessionResets', startValue);
|
||
|
cleanupSessionResets();
|
||
|
const actual = window.storage.get('sessionResets');
|
||
|
|
||
|
const expected = window._.pick(startValue, ['three']);
|
||
|
assert.deepEqual(actual, expected);
|
||
|
});
|
||
|
});
|