diff --git a/test/unit/config-templates.test.ts b/test/unit/config-templates.test.ts index dab758b237..8357971ebb 100644 --- a/test/unit/config-templates.test.ts +++ b/test/unit/config-templates.test.ts @@ -5,6 +5,8 @@ import { gateConfigToJson, parseFocusManifest, parseFocusManifestContent, + resolveReviewPromptOverrides, + reviewConfigToJson, } from "../../src/signals/focus-manifest"; // #1682: self-host operators need discoverable, copy-paste templates under config/examples/ that @@ -71,6 +73,20 @@ describe("config/examples review templates (#1682)", () => { } }); + it("resolves review.changed_files_summary via manifest parse + boolean helper (#2146)", () => { + const full = readConfigExample("gittensory.full.yml"); + expect(full).toMatch(/# changed_files_summary:/); + expect(parseFocusManifest({}).review.changedFilesSummary).toBeNull(); + expect(resolveReviewPromptOverrides(parseFocusManifest({})).changedFilesSummary).toBe(false); + const on = parseFocusManifest({ review: { changed_files_summary: true } }); + expect(on.review.changedFilesSummary).toBe(true); + expect(resolveReviewPromptOverrides(on).changedFilesSummary).toBe(true); + expect(reviewConfigToJson(on.review)).toEqual({ changed_files_summary: true }); + const off = parseFocusManifest({ review: { changed_files_summary: false } }); + expect(off.review.changedFilesSummary).toBe(false); + expect(resolveReviewPromptOverrides(off).changedFilesSummary).toBe(false); + }); + it("parses gittensory.minimal.yml with zero warnings and enables no agent actions", () => { const manifest = parseFocusManifestContent(readConfigExample("gittensory.minimal.yml"), "repo_file"); expect(manifest.warnings).toEqual([]);