diff --git a/backend/magic_plan/tests/test_audit_script.py b/backend/magic_plan/tests/test_audit_script.py index 5bf14596..8e966561 100644 --- a/backend/magic_plan/tests/test_audit_script.py +++ b/backend/magic_plan/tests/test_audit_script.py @@ -1,5 +1,6 @@ +import openpyxl from datatypes.magicplan.domain.models import Door, Floor, Plan, Room, Window -from backend.magic_plan.audit_script import AuditRow, _build_rows +from backend.magic_plan.audit_script import AuditRow, _build_rows, _write_headers def test_build_rows_opening_and_trickle_vent_fields_are_none() -> None: @@ -233,3 +234,29 @@ def test_build_rows_room_name_in_location_on_every_row() -> None: for row in data_rows: assert row.window_location == "Kitchen" assert row.door_location == "Kitchen" + + +def test_write_headers_two_rows_correct_labels_and_column_positions() -> None: + # Arrange + wb = openpyxl.Workbook() + ws = wb.active # type: ignore[assignment] + + # Act + _write_headers(ws) + + # Assert — group labels in row 1 at the new column positions + assert ws.cell(row=1, column=1).value == "Room" + assert ws.cell(row=1, column=6).value == "Window Area" + assert ws.cell(row=1, column=12).value == "Openings" + assert ws.cell(row=1, column=16).value == "Trickle Vents" + assert ws.cell(row=1, column=22).value == "Doors" + # Assert — "Door Undercuts" label no longer used + assert ws.cell(row=1, column=28).value is None + # Assert — only two header rows; row 3 is empty + assert ws.cell(row=3, column=1).value is None + assert ws.cell(row=3, column=13).value is None + # Assert — opening columns use self-describing labels (no "Opening 1" sub-header) + assert ws.cell(row=2, column=12).value == "No. of Openings" + assert ws.cell(row=2, column=13).value == "Opening Width m" + assert ws.cell(row=2, column=14).value == "Opening Height m" + assert ws.cell(row=2, column=15).value == "Total Area m²"