28 lines
898 B
JavaScript
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);
|
|
});
|