mirror of
https://github.com/diegosouzapw/OmniRoute.git
synced 2026-07-31 04:12:10 +03:00
88 lines
3.1 KiB
TypeScript
88 lines
3.1 KiB
TypeScript
/**
|
|
* Tests for AutoRefreshDaemon
|
|
*/
|
|
|
|
import assert from "node:assert/strict";
|
|
import { describe, it, before, after, beforeEach } from "node:test";
|
|
import { autoRefreshDaemon, type DaemonStatus } from "../../open-sse/services/autoRefreshDaemon";
|
|
|
|
describe("AutoRefreshDaemon", () => {
|
|
beforeEach(() => {
|
|
autoRefreshDaemon.clearExpired();
|
|
autoRefreshDaemon.stop();
|
|
});
|
|
|
|
describe("start / stop", () => {
|
|
it("should start and stop cleanly", () => {
|
|
let status = autoRefreshDaemon.getStatus();
|
|
assert.equal(status.running, false);
|
|
|
|
autoRefreshDaemon.start();
|
|
status = autoRefreshDaemon.getStatus();
|
|
assert.equal(status.running, true);
|
|
|
|
autoRefreshDaemon.stop();
|
|
status = autoRefreshDaemon.getStatus();
|
|
assert.equal(status.running, false);
|
|
});
|
|
|
|
it("should be idempotent on start", () => {
|
|
autoRefreshDaemon.start();
|
|
autoRefreshDaemon.start(); // second call should noop
|
|
assert.equal(autoRefreshDaemon.getStatus().running, true);
|
|
autoRefreshDaemon.stop();
|
|
});
|
|
|
|
it("should be idempotent on stop", () => {
|
|
autoRefreshDaemon.stop(); // not running — noop
|
|
autoRefreshDaemon.start();
|
|
autoRefreshDaemon.stop();
|
|
autoRefreshDaemon.stop(); // already stopped — noop
|
|
assert.equal(autoRefreshDaemon.getStatus().running, false);
|
|
});
|
|
});
|
|
|
|
describe("registerCredential / unregisterCredential", () => {
|
|
it("should register and track a credential", () => {
|
|
autoRefreshDaemon.registerCredential("test-provider", "cookie-value-123");
|
|
const status = autoRefreshDaemon.getStatus();
|
|
assert.equal(status.checkedProviderCount, 1);
|
|
});
|
|
|
|
it("should unregister and stop tracking", () => {
|
|
autoRefreshDaemon.registerCredential("test-provider", "cookie-value-123");
|
|
assert.equal(autoRefreshDaemon.getStatus().checkedProviderCount, 1);
|
|
|
|
autoRefreshDaemon.unregisterCredential("test-provider");
|
|
assert.equal(autoRefreshDaemon.getStatus().checkedProviderCount, 0);
|
|
});
|
|
});
|
|
|
|
describe("clearExpired", () => {
|
|
it("should clear expired list", () => {
|
|
// Force-expire by registering and running check against a provider that
|
|
// won't resolve — expired list stays empty since network errors are non-fatal
|
|
autoRefreshDaemon.registerCredential("fake-nonexistent", "test-value");
|
|
assert.equal(autoRefreshDaemon.getStatus().expiredCredentials.length, 0);
|
|
|
|
autoRefreshDaemon.clearExpired();
|
|
assert.equal(autoRefreshDaemon.getStatus().expiredCredentials.length, 0);
|
|
});
|
|
});
|
|
|
|
describe("getStatus", () => {
|
|
it("should return current daemon state", () => {
|
|
autoRefreshDaemon.registerCredential("provider-a", "val-a");
|
|
autoRefreshDaemon.start();
|
|
const status = autoRefreshDaemon.getStatus();
|
|
|
|
assert.ok(typeof status.running === "boolean");
|
|
assert.ok(typeof status.checkedProviderCount === "number");
|
|
assert.ok(Array.isArray(status.expiredCredentials));
|
|
assert.ok(typeof status.lastRun === "number" || status.lastRun === null);
|
|
|
|
autoRefreshDaemon.stop();
|
|
});
|
|
});
|
|
});
|