Files
zulip/frontend_tests/node_tests/reload.js
evykassirer bca41fd29f reload: Preserve unused reload tokens for a week.
Previously, we deleted all reload tokens on each reload, which
created a race condition if there were multiple tabs open.

Now, we continue to delete tokens after using them, but if a
token is not used it is preserved for a week before being deleted.

Fixes #22832.
2022-09-23 10:59:59 -07:00

38 lines
1.0 KiB
JavaScript

"use strict";
const {strict: assert} = require("assert");
const {zrequire} = require("../zjsunit/namespace");
// override file-level function call in reload.js
window.addEventListener = () => {};
const reload = zrequire("reload");
const {run_test} = require("../zjsunit/test");
run_test("old_metadata_string_is_stale", () => {
assert.ok(reload.is_stale_refresh_token("1663886962834", "1663883954033"), true);
});
run_test("recent_token_is_not_stale ", () => {
assert.ok(
!reload.is_stale_refresh_token(
{
url: "#reload:234234235234",
timestamp: Date.parse("21 Jan 2022 00:00:00 GMT"),
},
Date.parse("23 Jan 2022 00:00:00 GMT"),
),
);
});
run_test("old_token_is_stale ", () => {
assert.ok(
reload.is_stale_refresh_token(
{
url: "#reload:234234235234",
timestamp: Date.parse("13 Jan 2022 00:00:00 GMT"),
},
Date.parse("23 Jan 2022 00:00:00 GMT"),
),
);
});