Report no install docs for coordination- and design-only properties 🟩

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Daniel Roth 2026-07-23 16:21:18 +00:00
parent d666d0e800
commit 8ee27789bc

View file

@ -197,6 +197,41 @@ describe("computeDocStatusMap", () => {
expect(result["deal-1"].installStatus).toBe("none");
});
it("counts only genuine install docs when coordination and design docs are also present", () => {
// Arrange
const deal = makeDeal({ dealId: "deal-1", proposedMeasures: cwi });
const mixedDocs = [
{ fileType: "improvement_option_evaluation", measureName: null },
{ fileType: "retrofit_design_doc", measureName: null },
...cwiRequiredDocs.map((ft) => ({ fileType: ft, measureName: cwi })),
];
const docs = new Map([["deal-1", mixedDocs]]);
// Act
const result = computeDocStatusMap([deal], docs, {});
// Assert
expect(result["deal-1"].measureProgress).toEqual([
expect.objectContaining({ measureName: cwi, uploadedCount: cwiRequiredDocs.length }),
]);
});
it("reports no install docs when only coordination and design docs are present", () => {
// Arrange
const deal = makeDeal({ dealId: "deal-1", proposedMeasures: null });
const nonInstallDocs = [
{ fileType: "medium_term_improvement_plan", measureName: null },
{ fileType: "retrofit_design_doc", measureName: null },
];
const docs = new Map([["deal-1", nonInstallDocs]]);
// Act
const result = computeDocStatusMap([deal], docs, {});
// Assert
expect(result["deal-1"].hasInstallDocs).toBe(false);
});
it('is "none" when measures are defined but no install docs have been uploaded', () => {
const deal = makeDeal({ dealId: "deal-1", proposedMeasures: cwi });
// Only survey docs — no install docs