Files
2026-08-28 01:01:12 +02:00

28 lines
898 B
JavaScript

import test from 'node:test';
import assert from 'node:assert/strict';
import { createRefreshTracker } from '../../web/ui/controller.js';
test('refresh tracker runs once for each changed signature', () => {
let signature = 'a';
let refreshes = 0;
const tracker = createRefreshTracker(() => signature, () => { refreshes += 1; });
assert.equal(tracker.check(), true);
assert.equal(tracker.check(), false);
signature = 'b';
assert.equal(tracker.check(), true);
assert.equal(refreshes, 2);
});
test('refresh tracker stops polling', async () => {
let refreshes = 0;
const tracker = createRefreshTracker(() => String(refreshes), () => { refreshes += 1; });
tracker.start(1);
await new Promise((resolve) => setTimeout(resolve, 5));
tracker.stop();
const stopped = refreshes;
await new Promise((resolve) => setTimeout(resolve, 5));
assert.equal(refreshes, stopped);
});