Collapsed the Even plugin architecture into a single unified plugin by merging board card routes and replacing the transport stub with a real webhook implementation, removing the separate cards plugin from the workspace. The new unified plugin (`fusion-plugin-even-realities-glasses`) now exports con Fusion-Task-Id: FN-3970
53 lines
2.1 KiB
TypeScript
53 lines
2.1 KiB
TypeScript
import { describe, expect, it } from "vitest";
|
|
import {
|
|
agentActionsEnabled,
|
|
getCompanionWebhookUrl,
|
|
getFusionBaseUrl,
|
|
getFusionToken,
|
|
getNotifyColumns,
|
|
getPollingIntervalMs,
|
|
getQuickCaptureColumn,
|
|
} from "../settings.js";
|
|
|
|
describe("settings accessors", () => {
|
|
it("uses safe defaults", () => {
|
|
expect(getFusionBaseUrl({})).toBe("http://localhost:4040");
|
|
expect(getFusionToken({})).toBeUndefined();
|
|
expect(getCompanionWebhookUrl({})).toBeUndefined();
|
|
expect(getPollingIntervalMs({})).toBe(30000);
|
|
expect(getNotifyColumns({})).toEqual(["in-review"]);
|
|
expect(getQuickCaptureColumn({})).toBe("triage");
|
|
expect(agentActionsEnabled({})).toBe(true);
|
|
});
|
|
|
|
it("trims string values", () => {
|
|
expect(getFusionBaseUrl({ fusionApiBaseUrl: " http://fusion.local:4040 " })).toBe("http://fusion.local:4040");
|
|
expect(getFusionToken({ fusionApiToken: " token " })).toBe("token");
|
|
expect(getCompanionWebhookUrl({ companionWebhookUrl: " https://companion.example/ingest " })).toBe(
|
|
"https://companion.example/ingest",
|
|
);
|
|
});
|
|
|
|
it("enforces polling minimum and finite values", () => {
|
|
expect(getPollingIntervalMs({ pollingIntervalSeconds: 2 })).toBe(5000);
|
|
expect(getPollingIntervalMs({ pollingIntervalSeconds: 8.9 })).toBe(8000);
|
|
expect(getPollingIntervalMs({ pollingIntervalSeconds: Number.NaN })).toBe(30000);
|
|
});
|
|
|
|
it("filters notify columns and falls back when invalid", () => {
|
|
expect(getNotifyColumns({ notifyOnColumns: ["todo", " nope ", "in-review", 4] })).toEqual(["todo", "in-review"]);
|
|
expect(getNotifyColumns({ notifyOnColumns: ["nope"] })).toEqual(["in-review"]);
|
|
});
|
|
|
|
it("validates quick capture column", () => {
|
|
expect(getQuickCaptureColumn({ quickCaptureDefaultColumn: "done" })).toBe("done");
|
|
expect(getQuickCaptureColumn({ quickCaptureDefaultColumn: "bad-column" })).toBe("triage");
|
|
});
|
|
|
|
it("respects explicit boolean for agent actions", () => {
|
|
expect(agentActionsEnabled({ enableAgentActions: false })).toBe(false);
|
|
expect(agentActionsEnabled({ enableAgentActions: true })).toBe(true);
|
|
expect(agentActionsEnabled({ enableAgentActions: "true" })).toBe(true);
|
|
});
|
|
});
|