6306b23a9f
Migrate all templates to use .meta({ casRef: true }) on Zod schema
fields instead of manual extractRefs functions. Remove extractRefs
from RoleDefinition type entirely.
- develop: planner phases[].hash, coder completedPhase annotated
- solve-issue, smoke, init templates: extractRefs removed
- create-workflow.ts: uses collectCasRefs(schema, meta)
- RoleDefinition: extractRefs field removed (breaking)
218 tests pass, 0 fail.
Fixes #289, Refs #285
35 lines
1.0 KiB
TypeScript
35 lines
1.0 KiB
TypeScript
import { describe, expect, test } from "bun:test";
|
|
|
|
import { submitterMetaSchema, submitterRole } from "../src/roles/submitter.js";
|
|
|
|
describe("submitterRole", () => {
|
|
test("submitted sample validates against schema", () => {
|
|
const parsed = submitterMetaSchema.safeParse({
|
|
status: "submitted" as const,
|
|
prUrl: "https://github.com/example/repo/pull/42",
|
|
});
|
|
expect(parsed.success).toBe(true);
|
|
});
|
|
|
|
test("failed sample validates against schema", () => {
|
|
const parsed = submitterMetaSchema.safeParse({
|
|
status: "failed" as const,
|
|
error: "gh not authenticated",
|
|
});
|
|
expect(parsed.success).toBe(true);
|
|
});
|
|
|
|
test("rejects unknown status discriminant", () => {
|
|
const parsed = submitterMetaSchema.safeParse({
|
|
status: "queued",
|
|
prUrl: "https://example.com",
|
|
});
|
|
expect(parsed.success).toBe(false);
|
|
});
|
|
|
|
test("exposes submitter system prompt", () => {
|
|
expect(submitterRole.systemPrompt).toContain("submitter");
|
|
expect(submitterRole.systemPrompt).toContain("pull request");
|
|
});
|
|
});
|