mirror of
https://github.com/Termix-SSH/Termix.git
synced 2026-10-28 14:15:24 +00:00
45 lines
1.2 KiB
TypeScript
45 lines
1.2 KiB
TypeScript
import { beforeEach, describe, expect, it, vi } from "vitest";
|
|
|
|
const automationFetch = vi.fn();
|
|
|
|
vi.mock("../../src/backend/http.js", () => ({
|
|
automationFetch: (...args: unknown[]) => automationFetch(...args),
|
|
}));
|
|
|
|
const { sendAutomationNotification } =
|
|
await import("../../src/backend/notify.js");
|
|
|
|
beforeEach(() => {
|
|
automationFetch.mockReset();
|
|
automationFetch.mockResolvedValue({ ok: true });
|
|
});
|
|
|
|
describe("sendAutomationNotification", () => {
|
|
it("keeps alert-compatible host and rule fields in webhook payloads", async () => {
|
|
await sendAutomationNotification(
|
|
{ id: 1, type: "webhook", config: '{"url":"https://example.com"}' },
|
|
{
|
|
title: "CPU warning",
|
|
body: "cpu.percent is at 97",
|
|
severity: "warning",
|
|
context: {
|
|
host: { id: 11, name: "Proxmox Node" },
|
|
trigger: { value: 97, threshold: 90 },
|
|
run: { automationId: 42 },
|
|
},
|
|
},
|
|
);
|
|
|
|
const options = automationFetch.mock.calls[0][1] as RequestInit;
|
|
expect(JSON.parse(options.body as string)).toMatchObject({
|
|
hostName: "Proxmox Node",
|
|
hostId: 11,
|
|
ruleName: "CPU warning",
|
|
ruleId: 42,
|
|
value: 97,
|
|
threshold: 90,
|
|
message: "cpu.percent is at 97",
|
|
});
|
|
});
|
|
});
|