29 lines
940 B
TypeScript
29 lines
940 B
TypeScript
import { describe, expect, it } from "vitest";
|
|
|
|
import { toolAvailability } from "../contracts/toolOutputSchemaPrimitives.js";
|
|
import { buildCapabilityInventory } from "./CapabilityInventory.js";
|
|
|
|
describe("capability inventory contract", () => {
|
|
it("produces valid availability and rejects contradictory states", () => {
|
|
const inventory = buildCapabilityInventory(
|
|
{ open: false, capabilities: [] },
|
|
{
|
|
processCaptureEnabled: false,
|
|
},
|
|
);
|
|
const unavailable = inventory.find(({ available }) => !available);
|
|
expect(unavailable).toBeDefined();
|
|
expect(toolAvailability.safeParse(unavailable).success).toBe(true);
|
|
expect(
|
|
toolAvailability.safeParse({ ...unavailable, available: true }).success,
|
|
).toBe(false);
|
|
expect(
|
|
toolAvailability.safeParse({
|
|
...unavailable,
|
|
available: false,
|
|
reason: "available",
|
|
}).success,
|
|
).toBe(false);
|
|
});
|
|
});
|