Add Prettier and ESLint tooling (Refs #77)

This commit is contained in:
2026-10-09 15:56:13 -04:00
parent 8ed059b8d3
commit 16469e2d43
711 changed files with 99737 additions and 28286 deletions
+53 -16
View File
@@ -1,25 +1,62 @@
import { afterEach, expect, it, vi } from 'vitest';
import { betaUpdates } from '../../src/lib/ui/beta-updates.js';
afterEach(() => { vi.useRealTimers(); vi.unstubAllGlobals(); });
afterEach(() => {
vi.useRealTimers();
vi.unstubAllGlobals();
});
it('refreshes relevant pushes and reconnects without polling, pauses hidden tabs, and cleans up', async () => {
vi.useFakeTimers();
const window = new EventTarget(), document = Object.assign(new EventTarget(), { hidden: false });
vi.stubGlobal('window', window); vi.stubGlobal('document', document);
const window = new EventTarget(),
document = Object.assign(new EventTarget(), { hidden: false });
vi.stubGlobal('window', window);
vi.stubGlobal('document', document);
let finish!: () => void;
const load = vi.fn(() => new Promise<void>(resolve => { finish = resolve; }));
const load = vi.fn(
() =>
new Promise<void>((resolve) => {
finish = resolve;
})
);
const stop = betaUpdates(load, () => 7);
const change = (id: number) => window.dispatchEvent(Object.assign(new Event('ec:beta-changed'), { detail: { betaId: id } }));
const change = (id: number) =>
window.dispatchEvent(
Object.assign(new Event('ec:beta-changed'), { detail: { betaId: id } })
);
try {
change(2); await vi.advanceTimersByTimeAsync(1000); expect(load).not.toHaveBeenCalled();
change(7); change(7); await vi.advanceTimersByTimeAsync(200); expect(load).toHaveBeenCalledTimes(1);
change(7); await vi.advanceTimersByTimeAsync(200); expect(load).toHaveBeenCalledTimes(1);
finish(); await vi.advanceTimersByTimeAsync(200); expect(load).toHaveBeenCalledTimes(2);
finish(); await vi.advanceTimersByTimeAsync(30000); expect(load).toHaveBeenCalledTimes(2);
document.hidden = true; change(7); await vi.advanceTimersByTimeAsync(1000); expect(load).toHaveBeenCalledTimes(2);
document.hidden = false; document.dispatchEvent(new Event('visibilitychange'));
await vi.advanceTimersByTimeAsync(200); expect(load).toHaveBeenCalledTimes(3); finish();
change(2);
await vi.advanceTimersByTimeAsync(1000);
expect(load).not.toHaveBeenCalled();
change(7);
change(7);
await vi.advanceTimersByTimeAsync(200);
expect(load).toHaveBeenCalledTimes(1);
change(7);
await vi.advanceTimersByTimeAsync(200);
expect(load).toHaveBeenCalledTimes(1);
finish();
await vi.advanceTimersByTimeAsync(200);
expect(load).toHaveBeenCalledTimes(2);
finish();
await vi.advanceTimersByTimeAsync(30000);
expect(load).toHaveBeenCalledTimes(2);
document.hidden = true;
change(7);
await vi.advanceTimersByTimeAsync(1000);
expect(load).toHaveBeenCalledTimes(2);
document.hidden = false;
document.dispatchEvent(new Event('visibilitychange'));
await vi.advanceTimersByTimeAsync(200);
expect(load).toHaveBeenCalledTimes(3);
finish();
window.dispatchEvent(new Event('ec:pipeline-connected'));
await vi.advanceTimersByTimeAsync(200); expect(load).toHaveBeenCalledTimes(4); finish();
stop(); change(7); await vi.advanceTimersByTimeAsync(1000); expect(load).toHaveBeenCalledTimes(4);
} finally { stop(); }
await vi.advanceTimersByTimeAsync(200);
expect(load).toHaveBeenCalledTimes(4);
finish();
stop();
change(7);
await vi.advanceTimersByTimeAsync(1000);
expect(load).toHaveBeenCalledTimes(4);
} finally {
stop();
}
});