59 lines
1.5 KiB
TypeScript
59 lines
1.5 KiB
TypeScript
import { describe, expect, it } from "vitest";
|
|
|
|
import { collectZalouserStatusIssues } from "./status-issues.js";
|
|
|
|
describe("collectZalouserStatusIssues", () => {
|
|
it("flags missing zca when configured is false", () => {
|
|
const issues = collectZalouserStatusIssues([
|
|
{
|
|
accountId: "default",
|
|
enabled: true,
|
|
configured: false,
|
|
lastError: "zca CLI not found in PATH",
|
|
},
|
|
]);
|
|
expect(issues).toHaveLength(1);
|
|
expect(issues[0]?.kind).toBe("runtime");
|
|
expect(issues[0]?.message).toMatch(/zca CLI not found/i);
|
|
});
|
|
|
|
it("flags missing auth when configured is false", () => {
|
|
const issues = collectZalouserStatusIssues([
|
|
{
|
|
accountId: "default",
|
|
enabled: true,
|
|
configured: false,
|
|
lastError: "not authenticated",
|
|
},
|
|
]);
|
|
expect(issues).toHaveLength(1);
|
|
expect(issues[0]?.kind).toBe("auth");
|
|
expect(issues[0]?.message).toMatch(/Not authenticated/i);
|
|
});
|
|
|
|
it("warns when dmPolicy is open", () => {
|
|
const issues = collectZalouserStatusIssues([
|
|
{
|
|
accountId: "default",
|
|
enabled: true,
|
|
configured: true,
|
|
dmPolicy: "open",
|
|
},
|
|
]);
|
|
expect(issues).toHaveLength(1);
|
|
expect(issues[0]?.kind).toBe("config");
|
|
});
|
|
|
|
it("skips disabled accounts", () => {
|
|
const issues = collectZalouserStatusIssues([
|
|
{
|
|
accountId: "default",
|
|
enabled: false,
|
|
configured: false,
|
|
lastError: "zca CLI not found in PATH",
|
|
},
|
|
]);
|
|
expect(issues).toHaveLength(0);
|
|
});
|
|
});
|