Files
backend/src/integrations/tbank/tbank-source.policy.spec.ts
T
ksv741 0057925888
Backend verify / commits (pull_request) Successful in 33s
Backend verify / security (pull_request) Failing after 12s
Backend verify / verify (pull_request) Skipped
feat: add hourly portfolio sync history
2026-10-09 09:04:41 +03:00

35 lines
1.1 KiB
TypeScript

import {
tbankSourceNeedsRefresh,
tbankSourceTtlMs,
} from './tbank-source.policy';
describe('mutable source freshness', () => {
it.each(Object.keys(tbankSourceTtlMs) as (keyof typeof tbankSourceTtlMs)[])(
'%s expires at its boundary without changing source time',
(source) => {
const fetchedAt = new Date('2026-09-01Z');
// eslint-disable-next-line security/detect-object-injection -- The key comes from the local source-policy test table.
const ttl = tbankSourceTtlMs[source];
expect(
tbankSourceNeedsRefresh(
source,
fetchedAt,
new Date(fetchedAt.valueOf() + ttl - 1000),
),
).toBe(false);
expect(
tbankSourceNeedsRefresh(
source,
fetchedAt,
new Date(fetchedAt.valueOf() + ttl),
),
).toBe(true);
expect(tbankSourceNeedsRefresh(source, fetchedAt, fetchedAt, true)).toBe(
true,
);
expect(tbankSourceNeedsRefresh(source, null, fetchedAt)).toBe(true);
expect(fetchedAt.toISOString()).toBe('2026-09-01T00:00:00.000Z');
},
);
});