diff --git a/custom/knowledge/testing/test-one-when-per-test.md b/custom/knowledge/testing/test-one-when-per-test.md index ffe0790..a575983 100644 --- a/custom/knowledge/testing/test-one-when-per-test.md +++ b/custom/knowledge/testing/test-one-when-per-test.md @@ -74,25 +74,20 @@ belongs in `[WHEN]`. ## Flow tests — the deliberate exception A **flow test** verifies the accumulated outcome of a multi-round business -flow — partial receipt then invoicing, multiple posting rounds against one -document. Here the sequence IS the scenario: the claim under test is "after -round 1, 2 and 3, the balances are correct", and it cannot be expressed as -three independent tests without losing the very interaction being verified. +flow (partial receipt then invoicing, multiple posting rounds against one +document). The sequence IS the scenario — splitting it loses the interaction +under test. Multiple `[WHEN]` blocks are permitted when ALL of these hold: -Flow tests are permitted with multiple `[WHEN]` blocks when ALL of these hold: - -1. The name declares the flow: the codeunit or procedure name contains the - sequence (`SVPartialFlowTests`, `ReceiveThenInvoice_QuantitiesAreCorrect`). +1. The name declares the flow (`SVPartialFlowTests`, + `ReceiveThenInvoice_QuantitiesAreCorrect`). 2. Each `[WHEN]` is labelled as a round of ONE scenario ("Runde 1: kun modtagelse"), not as an unrelated action. -3. The `[THEN]` asserts the accumulated end-state — not one unrelated claim - per WHEN. If the assertions decompose cleanly per action, it is two tests - in disguise: split. +3. The `[THEN]` asserts the accumulated end-state. If the assertions + decompose cleanly per action, it is two tests in disguise: split. Unit-level tests keep the strict one-WHEN rule without exception. (Edison -eval 2026-07-02, Jernpladsen @ b7656b1: five multi-WHEN procedures in -SVPartialFlowTests, all deliberate round-labelled flows — the rule previously -gave no verdict on them.) +eval 2026-07-02, Jernpladsen @ b7656b1: five deliberate round-labelled flow +procedures in SVPartialFlowTests — the rule previously gave no verdict.) ## Naming implication