Files
tutti/packages/agent/gui/agent-gui/agentGuiNode/controller/useAgentGUIProviderCatalogSelection.spec.tsx
agent-radar 2ed3415fb7
Publish Claude Code Binaries / Stage and publish binaries (push) Canceled after 0s
Publish Tutti App Runtime / Build darwin-arm64 (push) Canceled after 0s
Publish Tutti App Runtime / Build darwin-amd64 (push) Canceled after 0s
Publish Tutti App Runtime / Build linux-amd64 (push) Canceled after 0s
Publish Tutti App Runtime / Build windows-amd64 (push) Canceled after 0s
Sync Tutti Agent Skills / sync (push) Canceled after 0s
Windows Agent Adapters / Test Windows agent adapters (push) Canceled after 0s
Windows Daemon Adapters / Test Windows daemon adapters (push) Canceled after 0s
Publish Tutti App Runtime / Publish runtime catalog (push) Canceled after 0s
源码快照 @ 2026-09-01 (source-only, 剔除非源码素材)
2026-09-01 20:17:27 +08:00

69 lines
2.3 KiB
TypeScript

import { renderHook } from "@testing-library/react";
import { describe, expect, it } from "vitest";
import type { AgentGUIAgentTarget } from "../../../types";
import { useAgentGUIProviderCatalogSelection } from "./useAgentGUIProviderCatalogSelection";
describe("useAgentGUIProviderCatalogSelection handoff catalog", () => {
it("uses an independent ready target catalog for handoff", () => {
const local = target("local-codex", "codex");
const shared = target("shared-agent:claude", "claude-code");
const unavailable = {
...target("shared-agent:offline", "codex"),
disabled: true
};
const { result } = renderHook(() =>
useAgentGUIProviderCatalogSelection({
agentTargets: [local],
agentTargetsLoading: false,
comingSoonProviders: undefined,
data: {
agentTargetId: local.agentTargetId,
lastActiveAgentSessionId: null,
provider: local.provider
},
defaultAgentTargetId: local.agentTargetId,
handoffAgentTargets: [local, shared, unavailable],
handoffAgentTargetsLoading: false,
providerRailMode: "exact",
providerReadinessGates: null
})
);
expect(result.current.normalizedProviderTargets).toEqual([local]);
expect(result.current.handoffAgentTargets).toEqual([local, shared]);
});
it("uses the runtime catalog when no independent handoff catalog is supplied", () => {
const local = target("local-codex", "codex");
const { result } = renderHook(() =>
useAgentGUIProviderCatalogSelection({
agentTargets: [local],
agentTargetsLoading: false,
comingSoonProviders: undefined,
data: {
agentTargetId: local.agentTargetId,
lastActiveAgentSessionId: null,
provider: local.provider
},
defaultAgentTargetId: local.agentTargetId,
handoffAgentTargets: undefined,
handoffAgentTargetsLoading: undefined,
providerRailMode: "exact",
providerReadinessGates: null
})
);
expect(result.current.handoffAgentTargets).toEqual([local]);
});
});
function target(agentTargetId: string, provider: string): AgentGUIAgentTarget {
return {
agentTargetId,
label: agentTargetId,
provider,
ref: { agentTargetId, kind: "agent-directory", provider },
targetId: agentTargetId
};
}