Files
openwork/apps/app/tests/openwork-connect-status.test.ts

101 lines
3.7 KiB
TypeScript

import { describe, expect, test } from "bun:test";
import {
openWorkConnectAttentionTitle,
resolveOpenWorkConnectStateSummary,
resolveOpenWorkConnectStatus,
} from "../src/react-app/domains/connections/openwork-connect-status";
import type { SessionCloudMcpMaintenanceState } from "../src/react-app/domains/connections/use-session-mcp-maintenance";
function maintenance(
status: SessionCloudMcpMaintenanceState["status"],
): SessionCloudMcpMaintenanceState {
return {
status,
issue: status === "failed"
? {
code: "cloud_mcp_unavailable",
stage: "engine_delivery",
retryable: false,
recommendedAction: "Run diagnostics",
message: "Connected service tools could not be verified.",
}
: null,
attempt: status === "retrying" ? 2 : 1,
maxAttempts: 3,
};
}
describe("OpenWork Connect status", () => {
test("distinguishes missing, disabled, and unreadable Connect state", () => {
expect(resolveOpenWorkConnectStateSummary("missing", false)).toEqual({
status: "not_configured",
statusLabel: "Not configured",
tone: "neutral",
stageLabel: "Connect setup is not finished",
recommendedAction: "Sign in to OpenWork Cloud to finish setup.",
});
expect(resolveOpenWorkConnectStateSummary("available", false)).toEqual({
status: "disabled",
statusLabel: "Disabled",
tone: "neutral",
stageLabel: "Disabled by organization policy",
recommendedAction: "Ask an organization admin to enable Connect.",
});
for (const status of ["invalid", "unreadable"] satisfies Array<"invalid" | "unreadable">) {
expect(resolveOpenWorkConnectStateSummary(status, false)).toEqual({
status: "unavailable",
statusLabel: "Needs attention",
tone: "error",
stageLabel: "Connect settings are unavailable",
recommendedAction: "Restart OpenWork. If this continues, run diagnostics.",
});
}
});
test("labels the diagnosed message as one possible issue for native tooltips", () => {
expect(openWorkConnectAttentionTitle("Connected service tools could not be verified."))
.toBe("One possible issue: Connected service tools could not be verified.");
});
test("is hidden while signed out", () => {
expect(resolveOpenWorkConnectStatus(false, maintenance("ready"))).toBeNull();
});
test("shows the verified Cloud connection while workspace maintenance is idle", () => {
expect(resolveOpenWorkConnectStatus(true, undefined)).toEqual({
state: "ready",
label: "Ready",
description: "Signed in to OpenWork Cloud. Connected service tools will be checked when a workspace is active.",
});
expect(resolveOpenWorkConnectStatus(true, maintenance("idle"))).toMatchObject({
state: "ready",
label: "Ready",
});
});
test("maps the active lifecycle to checking, ready, and needs attention", () => {
expect(resolveOpenWorkConnectStatus(true, maintenance("checking"))).toMatchObject({
state: "checking",
label: "Checking",
});
expect(resolveOpenWorkConnectStatus(true, maintenance("retrying"))).toMatchObject({
state: "checking",
description: "Restoring connected service tools (2/3).",
});
expect(resolveOpenWorkConnectStatus(true, maintenance("ready"))).toMatchObject({
state: "ready",
label: "Ready",
});
expect(resolveOpenWorkConnectStatus(true, maintenance("failed"))).toEqual({
state: "needs_attention",
label: "Needs attention",
description: "Connected service tools could not be verified.",
});
expect(resolveOpenWorkConnectStatus(true, maintenance("skipped"))).toMatchObject({
state: "needs_attention",
label: "Needs attention",
});
});
});