leistungsbilanz-ts/tests
Julian Appel c6cdfc42d5 Keep manual quantity consistent when synchronizing device rows
Synchronizing a project device pushes its quantity onto every linked
device row, but manualQuantity is not part of the sync snapshot and was
left untouched. A device whose quantity is lower than the row's left the
row at manualQuantity > quantity, violating the snapshot invariant.

The violation surfaced far from its cause: the invariant is only checked
when a full state snapshot is read, and the automatic snapshot runs every
25 revisions. A project could therefore accumulate the broken row
silently and then reject every subsequent command, because the failing
validation rolls back the whole transaction including the revision bump.

Recompute manualQuantity as the synchronized quantity minus the total of
the linked external objects, matching the invariant that
assertCircuitDeviceRowQuantity enforces elsewhere, and reject a
synchronized quantity that falls below that total.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-23 18:05:50 +02:00
..
fixtures Add Revit CSV transport 2026-08-02 15:56:02 +02:00
support Create protected board defaults 2026-07-30 19:30:53 +02:00
circuit-device-row-move-command.test.ts Persist device row moves 2026-07-25 21:09:02 +02:00
circuit-device-row-move-project-command.repository.test.ts Create clean release database baseline 2026-07-31 14:07:26 +02:00
circuit-device-row-project-command.repository.test.ts Add external row quantity foundation 2026-08-02 18:26:22 +02:00
circuit-device-row-quantity.test.ts Add external row quantity foundation 2026-08-02 18:26:22 +02:00
circuit-device-row-structure-project-command.repository.test.ts Create clean release database baseline 2026-07-31 14:07:26 +02:00
circuit-editor-history.test.ts Restore editor history after reload 2026-07-25 21:45:58 +02:00
circuit-grid-insertion.test.ts Restore circuit drag placement 2026-07-31 08:33:41 +02:00
circuit-grid-model.test.ts Fix code-review findings across domain, persistence, server and frontend 2026-08-06 21:31:16 +02:00
circuit-grid-projection.test.ts Fix code-review findings across domain, persistence, server and frontend 2026-08-06 21:31:16 +02:00
circuit-grid-safety.test.ts Confirm cross-section device moves 2026-07-22 20:31:55 +02:00
circuit-group-move-project-command.repository.test.ts Persist circuit group moves 2026-07-30 20:03:11 +02:00
circuit-group-numbering.test.ts Create clean release database baseline 2026-07-31 14:07:26 +02:00
circuit-group-renumber-project-command.repository.test.ts Persist circuit group renumbering 2026-07-30 19:56:59 +02:00
circuit-group-structure-project-command.repository.test.ts Add circuit group reordering 2026-07-30 19:49:27 +02:00
circuit-group-subtree-project-command.repository.test.ts Create clean release database baseline 2026-07-31 14:07:26 +02:00
circuit-group-subtree-snapshot.test.ts Create clean release database baseline 2026-07-31 14:07:26 +02:00
circuit-numbering.service.test.ts Decouple runtime domain services 2026-07-26 12:04:50 +02:00
circuit-power-calculation.test.ts Create clean release database baseline 2026-07-31 14:07:26 +02:00
circuit-project-command.repository.test.ts Create clean release database baseline 2026-07-31 14:07:26 +02:00
circuit-protection-project-command.repository.test.ts Persist circuit protection updates 2026-07-31 07:37:38 +02:00
circuit-section-renumber-command.test.ts Persist section renumbering 2026-07-25 21:30:29 +02:00
circuit-section-renumber-project-command.repository.test.ts Remove obsolete repository writes 2026-07-26 11:05:26 +02:00
circuit-section-reorder-command.test.ts Persist circuit reorders 2026-07-25 21:22:10 +02:00
circuit-section-reorder-project-command.repository.test.ts Remove obsolete repository writes 2026-07-26 11:05:26 +02:00
circuit-structure-command.test.ts Create clean release database baseline 2026-07-31 14:07:26 +02:00
circuit-structure-project-command.repository.test.ts Fix code-review findings across domain, persistence, server and frontend 2026-08-06 21:31:16 +02:00
circuit-structure-projection.test.ts WIP multiple sections 2026-07-30 20:27:17 +02:00
circuit-tree.controller.test.ts Expose protected tree structure 2026-07-30 20:14:45 +02:00
circuit.controller.test.ts Fix code-review findings across domain, persistence, server and frontend 2026-08-06 21:31:16 +02:00
database-backup.test.ts Inject application database contexts 2026-07-26 12:30:42 +02:00
distribution-board-component-structure-project-command.repository.test.ts Fix code-review findings across domain, persistence, server and frontend 2026-08-06 21:31:16 +02:00
distribution-board-component.test.ts Persist complete distribution board subtrees 2026-07-31 11:57:10 +02:00
distribution-board-structure-project-command.repository.test.ts Create clean release database baseline 2026-07-31 14:07:26 +02:00
distribution-board-subtree-project-command.repository.test.ts Persist complete distribution board subtrees 2026-07-31 11:57:10 +02:00
distribution-board-subtree.test.ts Create clean release database baseline 2026-07-31 14:07:26 +02:00
external-circuit-list-objects.test.ts Add Revit circuit list object feed 2026-08-02 18:59:01 +02:00
external-csv-api-contract.test.ts Fix code-review findings across domain, persistence, server and frontend 2026-08-06 21:31:16 +02:00
external-csv-configuration-project-command.repository.test.ts Add Revit CSV preview API 2026-08-02 16:49:42 +02:00
external-csv-configuration.test.ts Persist Revit CSV configuration 2026-08-02 16:33:18 +02:00
external-csv-preview.test.ts Add Revit CSV preview API 2026-08-02 16:49:42 +02:00
external-csv-transport.test.ts Verify Revit reference CSV 2026-08-02 16:01:05 +02:00
external-initial-import-plan.test.ts Add Revit initial import apply API 2026-08-02 17:42:29 +02:00
external-initial-import-project-command.repository.test.ts Fix code-review findings across domain, persistence, server and frontend 2026-08-06 21:31:16 +02:00
external-model-foundation.test.ts Add external row quantity foundation 2026-08-02 18:26:22 +02:00
external-object-row-assignment-project-command.repository.test.ts Add external object new circuit command 2026-08-02 18:55:57 +02:00
logger.test.ts Add configurable structured logging 2026-08-06 19:45:39 +02:00
project-command.model.test.ts Fix code-review findings across domain, persistence, server and frontend 2026-08-06 21:31:16 +02:00
project-command.service.test.ts Persist Revit CSV configuration 2026-08-02 16:33:18 +02:00
project-device-placement.service.test.ts Derive project device phases from category 2026-07-31 14:37:45 +02:00
project-device-project-command.repository.test.ts Add project device update history 2026-07-24 08:57:57 +02:00
project-device-row-sync-project-command.repository.test.ts Keep manual quantity consistent when synchronizing device rows 2026-08-23 18:05:50 +02:00
project-device-schema.test.ts Derive project device phases from category 2026-07-31 14:37:45 +02:00
project-device-structure-project-command.repository.test.ts Remove obsolete repository writes 2026-07-26 11:05:26 +02:00
project-device-sync.service.test.ts Create clean release database baseline 2026-07-31 14:07:26 +02:00
project-history-timeline.test.ts Expose project revision timeline 2026-07-25 21:57:03 +02:00
project-history.repository.test.ts Describe snapshot source revisions 2026-07-29 11:52:26 +02:00
project-location-structure-project-command.repository.test.ts Add editable project floors and rooms 2026-07-31 14:46:06 +02:00
project-overview-import.test.ts Add project overview import 2026-07-29 08:36:57 +02:00
project-revision.persistence.test.ts Remove unused revision repository 2026-07-26 11:40:04 +02:00
project-settings-project-command.repository.test.ts Add public building project setting 2026-07-31 17:41:30 +02:00
project-snapshot-policy.test.ts Add automatic project snapshots 2026-07-25 23:27:51 +02:00
project-snapshot.repository.test.ts Create clean release database baseline 2026-07-31 14:07:26 +02:00
project-state-restore-command.repository.test.ts Create clean release database baseline 2026-07-31 14:07:26 +02:00
project-state-snapshot.test.ts Add external row quantity foundation 2026-08-02 18:26:22 +02:00
project-version-history.test.ts Fix code-review findings across domain, persistence, server and frontend 2026-08-06 21:31:16 +02:00
protection-device.test.ts Configure circuit protection 2026-07-31 07:45:48 +02:00
revit-csv-frontend-api.test.ts Add Revit circuit list object feed 2026-08-02 18:59:01 +02:00