Files
system_update/server/services/machines.test.ts
T
2026-06-05 04:03:51 +02:00

25 lines
1016 B
TypeScript

// server/services/machines.test.ts
import { describe, it, expect, vi } from "vitest";
// Mock all modules with side-effects at import time (DB, SSH, crypto)
vi.mock("../db/client.js", () => ({ db: {}, schema: { machines: {} } }));
vi.mock("../crypto/secrets.js", () => ({ encryptSecret: vi.fn(), decryptSecret: vi.fn() }));
vi.mock("../env.js", () => ({ env: { requireMasterKey: vi.fn(), reportsDir: "/tmp" } }));
vi.mock("../ssh/client.js", () => ({ runPlain: vi.fn() }));
import { parseOsRelease } from "./machines.js";
describe("parseOsRelease", () => {
it("détecte Debian", () => {
const r = parseOsRelease('ID=debian\nVERSION_ID="11"\nPRETTY_NAME="Debian 11"');
expect(r).toEqual({ family: "debian", version: "11" });
});
it("détecte Ubuntu", () => {
const r = parseOsRelease('ID=ubuntu\nVERSION_ID="22.04"');
expect(r).toEqual({ family: "ubuntu", version: "22.04" });
});
it("retombe sur unknown", () => {
expect(parseOsRelease("ID=arch").family).toBe("unknown");
});
});