Files
horus-3d/tests/unit/colorSemantics.test.ts
T
Luke The Dev 4fa4f13558 First Release of Claw3D (#11)
Co-authored-by: iamlukethedev <iamlukethedev@users.noreply.github.com>
2026-03-19 23:14:04 -05:00

45 lines
1.8 KiB
TypeScript

import { describe, expect, it } from "vitest";
import {
AGENT_STATUS_BADGE_CLASS,
AGENT_STATUS_LABEL,
GATEWAY_STATUS_BADGE_CLASS,
GATEWAY_STATUS_LABEL,
NEEDS_APPROVAL_BADGE_CLASS,
resolveAgentStatusBadgeClass,
resolveAgentStatusLabel,
resolveGatewayStatusBadgeClass,
resolveGatewayStatusLabel,
} from "@/features/agents/components/colorSemantics";
describe("colorSemantics", () => {
it("maps agent statuses to semantic badge classes and labels", () => {
expect(AGENT_STATUS_LABEL.idle).toBe("Idle");
expect(AGENT_STATUS_LABEL.running).toBe("Running");
expect(AGENT_STATUS_LABEL.error).toBe("Error");
expect(AGENT_STATUS_BADGE_CLASS.idle).toBe("ui-badge-status-idle");
expect(AGENT_STATUS_BADGE_CLASS.running).toBe("ui-badge-status-running");
expect(AGENT_STATUS_BADGE_CLASS.error).toBe("ui-badge-status-error");
expect(resolveAgentStatusLabel("idle")).toBe("Idle");
expect(resolveAgentStatusBadgeClass("running")).toBe("ui-badge-status-running");
});
it("maps gateway statuses to semantic badge classes and labels", () => {
expect(GATEWAY_STATUS_LABEL.disconnected).toBe("Disconnected");
expect(GATEWAY_STATUS_LABEL.connecting).toBe("Connecting");
expect(GATEWAY_STATUS_LABEL.connected).toBe("Connected");
expect(GATEWAY_STATUS_BADGE_CLASS.disconnected).toBe("ui-badge-status-disconnected");
expect(GATEWAY_STATUS_BADGE_CLASS.connecting).toBe("ui-badge-status-connecting");
expect(GATEWAY_STATUS_BADGE_CLASS.connected).toBe("ui-badge-status-connected");
expect(resolveGatewayStatusLabel("connected")).toBe("Connected");
expect(resolveGatewayStatusBadgeClass("disconnected")).toBe("ui-badge-status-disconnected");
});
it("keeps approval state on its own semantic class", () => {
expect(NEEDS_APPROVAL_BADGE_CLASS).toBe("ui-badge-approval");
});
});