Spaces:
Running
Running
| import { expect, test } from "bun:test" | |
| import { getRefreshDeadlineMs, getRefreshPollDelayMs } from "../src/lib/token" | |
| test("builds refresh deadline from refresh_in and local time", () => { | |
| const nowMs = 1_000_000 | |
| expect(getRefreshDeadlineMs(1_800, nowMs)).toBe(nowMs + 1_740_000) | |
| }) | |
| test("clamps refresh deadline to avoid a hot loop", () => { | |
| const nowMs = 1_000_000 | |
| expect(getRefreshDeadlineMs(30, nowMs)).toBe(nowMs + 1_000) | |
| }) | |
| test("caps poll delay at 15 seconds while waiting", () => { | |
| const nowMs = 1_000_000 | |
| expect(getRefreshPollDelayMs(nowMs + 120_000, nowMs)).toBe(15_000) | |
| }) | |
| test("uses remaining delay when refresh is close", () => { | |
| const nowMs = 1_000_000 | |
| expect(getRefreshPollDelayMs(nowMs + 8_000, nowMs)).toBe(8_000) | |
| }) | |
| test("returns zero when refresh is already due", () => { | |
| const nowMs = 1_000_000 | |
| expect(getRefreshPollDelayMs(nowMs - 1, nowMs)).toBe(0) | |
| }) | |