fix(eoc-push): interpolera {brand} + EOC-tone i pushad wall
This commit is contained in:
@@ -82,4 +82,57 @@ describe("pushOpsSummaryToEoc", () => {
|
||||
expect(result.ok).toBe(false);
|
||||
expect(result.error).toMatch(/cache miss/);
|
||||
});
|
||||
|
||||
it("transforms wall titles and tones for EOC", async () => {
|
||||
process.env.EOC_URL = "https://eoc.example.com";
|
||||
process.env.EOC_PUSH_TOKEN = "tok";
|
||||
await redis.set(
|
||||
"ops:summary:cache",
|
||||
JSON.stringify({
|
||||
as_of: new Date().toISOString(),
|
||||
app: { app: "cibello" },
|
||||
jobb: { workers_ok: false },
|
||||
sakerhet: { allergen_invariant_brott: 1 },
|
||||
wall: {
|
||||
boards: [
|
||||
{
|
||||
title: "{brand} Overview",
|
||||
tiles: [
|
||||
{ label: "MRR", value: "0 kr", tone: "ok" },
|
||||
{ label: "Workers", value: "NERE", tone: "warn" },
|
||||
{ label: "Allergen-brott", value: "1", tone: "warn" },
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
}),
|
||||
"EX",
|
||||
60,
|
||||
);
|
||||
|
||||
const originalFetch = globalThis.fetch;
|
||||
const fetchMock = vi.fn().mockResolvedValue(new Response(null, { status: 204 }));
|
||||
globalThis.fetch = fetchMock as unknown as typeof fetch;
|
||||
|
||||
try {
|
||||
const result = await pushOpsSummaryToEoc(redis);
|
||||
expect(result.ok).toBe(true);
|
||||
|
||||
const init = fetchMock.mock.calls[0][1] as RequestInit;
|
||||
const body = JSON.parse(init.body as string);
|
||||
const board = body.wall.boards[0];
|
||||
expect(board.title).toBe("Cibello Overview");
|
||||
expect(board.title).not.toMatch(/\{brand\}/);
|
||||
|
||||
const tones = board.tiles.map((t: { tone?: string }) => t.tone);
|
||||
for (const tone of tones) {
|
||||
expect(["good", "warn", "crit", ""]).toContain(tone);
|
||||
}
|
||||
expect(board.tiles.find((t: { label: string }) => t.label === "MRR")?.tone).toBe("good");
|
||||
expect(board.tiles.find((t: { label: string }) => t.label === "Workers")?.tone).toBe("crit");
|
||||
expect(board.tiles.find((t: { label: string }) => t.label === "Allergen-brott")?.tone).toBe("crit");
|
||||
} finally {
|
||||
globalThis.fetch = originalFetch;
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user