Improve logging of endorsements expirations
This commit is contained in:
parent
6565daa5c8
commit
8582bf0d78
3 changed files with 85 additions and 20 deletions
46
ts/test-node/util/groupSendEndorsements_test.ts
Normal file
46
ts/test-node/util/groupSendEndorsements_test.ts
Normal file
|
@ -0,0 +1,46 @@
|
|||
// Copyright 2024 Signal Messenger, LLC
|
||||
// SPDX-License-Identifier: AGPL-3.0-only
|
||||
|
||||
import assert from 'node:assert/strict';
|
||||
import { isValidGroupSendEndorsementsExpiration } from '../../util/groupSendEndorsements';
|
||||
import { DAY, HOUR, SECOND } from '../../util/durations';
|
||||
|
||||
describe('groupSendEndorsements', () => {
|
||||
describe('isValidGroupSendEndorsementsExpiration', () => {
|
||||
function validateDistance(distance: number) {
|
||||
const expiration = Date.now() + distance;
|
||||
return isValidGroupSendEndorsementsExpiration(expiration);
|
||||
}
|
||||
|
||||
function checkValid(label: string, distance: number) {
|
||||
it(label, () => {
|
||||
const actual = validateDistance(distance);
|
||||
assert.equal(actual.valid, true);
|
||||
assert.equal(actual.reason, undefined);
|
||||
});
|
||||
}
|
||||
|
||||
function checkInvalid(label: string, distance: number, reason: RegExp) {
|
||||
it(label, () => {
|
||||
const actual = validateDistance(distance);
|
||||
assert.equal(actual.valid, false);
|
||||
assert.match(actual.reason, reason);
|
||||
});
|
||||
}
|
||||
|
||||
const TWO_HOURS = HOUR * 2;
|
||||
const TWO_DAYS = DAY * 2;
|
||||
|
||||
checkInvalid('2d ago', -TWO_DAYS, /already expired/);
|
||||
checkInvalid('2h ago', -TWO_HOURS, /already expired/);
|
||||
checkInvalid('1s ago', -SECOND, /already expired/);
|
||||
checkInvalid('now', 0, /already expired/);
|
||||
checkInvalid('in 1s', SECOND, /expires soon/);
|
||||
checkInvalid('in <2h', TWO_HOURS - SECOND, /expires soon/);
|
||||
checkInvalid('in 2h', TWO_HOURS, /expires soon/);
|
||||
checkValid('in >2h', TWO_HOURS + SECOND);
|
||||
checkValid('in <2d', TWO_DAYS - SECOND);
|
||||
checkInvalid('in 2d', TWO_DAYS, /expires too far in future/);
|
||||
checkInvalid('in >2d', TWO_DAYS + SECOND, /expires too far in future/);
|
||||
});
|
||||
});
|
Loading…
Add table
Add a link
Reference in a new issue