- Add a summary and select at least one project to{" "} + Add a summary to{" "} {finalizeVariant === "ready" ? "regenerate" : "finalize"}.
)} diff --git a/orchestrator/src/client/components/tailoring/rules.test.ts b/orchestrator/src/client/components/tailoring/rules.test.ts new file mode 100644 index 0000000..d790a2d --- /dev/null +++ b/orchestrator/src/client/components/tailoring/rules.test.ts @@ -0,0 +1,12 @@ +import { describe, expect, it } from "vitest"; +import { canFinalizeTailoring } from "./rules"; + +describe("canFinalizeTailoring", () => { + it("returns true when summary has non-whitespace content", () => { + expect(canFinalizeTailoring("Summary")).toBe(true); + }); + + it("returns false when summary is empty", () => { + expect(canFinalizeTailoring(" ")).toBe(false); + }); +}); diff --git a/orchestrator/src/client/components/tailoring/rules.ts b/orchestrator/src/client/components/tailoring/rules.ts new file mode 100644 index 0000000..0b99860 --- /dev/null +++ b/orchestrator/src/client/components/tailoring/rules.ts @@ -0,0 +1,3 @@ +export function canFinalizeTailoring(summary: string): boolean { + return summary.trim().length > 0; +} diff --git a/orchestrator/src/client/components/tailoring/useTailoringDraft.ts b/orchestrator/src/client/components/tailoring/useTailoringDraft.ts index 7edc76a..8472df8 100644 --- a/orchestrator/src/client/components/tailoring/useTailoringDraft.ts +++ b/orchestrator/src/client/components/tailoring/useTailoringDraft.ts @@ -55,6 +55,7 @@ export function useTailoringDraft({ onDirtyChange, }: UseTailoringDraftParams) { const [catalog, setCatalog] = useState