Repository navigation
Tests the three flow patterns composed - #690
Merged
Merged
Conversation
One new test module and one fixture compose the flow-patterns guide's three documents in one: a core.parallel of optional arms, each lane guarded by a one-arm core.branch, with the bounded step (a core.group carrying the deadline recipe around a core.await) in one lane and the park (a core.group whose body is a core.wait, with handlers on its rail) in the other. The world is the guide's library hold. The test asserts Publish.findings/3 reports no error, the compile succeeds with no warning, each pattern's timer and interrupt lines are the guide's own lines byte for byte inside that pattern's group and lane, the chart runs with the bound failing open inside its lane, and Describe and the Map name every arm. Dropping the deadline handler raises no Publish finding and no compile warning: the compiled-chart test, the two confirm-lane run tests and the Describe test go red instead, as the note above the test records. No file under lib changes. Tests take no changelog fragment. Gate: full mix quality green on this tree (3,960 of 3,960 tests, 95.3% coverage, dialyzer clean, ADR cites green). Refs: sb-2qag
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
One new test module,
test/statifier_blocks/flow_patterns_composed_test.exs, and one fixture,test/fixtures/documents/flow_patterns/composed.json, compose the three documentsdocs/guides/flow-patterns.mdshows one by one:core.parallelof optional arms (complete: "all"), each lane guarded by its own one-armcore.branch;confirmlane, the bounded step: acore.groupcarrying the deadline recipe (a delayedcore.sendat the head of the body, acore.on_eventwith outcomeabandonon the rail) around acore.await;shelflane, the park: acore.groupwhose body is onecore.waitand whose rail carries two abandoning handlers.The world is the guide's library hold: a hold is placed, the desk may be asked to confirm it within a day, the item may wait on the hold shelf for seven days, and the hold is closed when both lanes are done.
What the test asserts
Publish.findings/3reports no error finding, the compile succeeds with no warning, and the engine parses the chart.otherwisearms, every handler), and the Map titles both lanes and draws every interrupt edge and the one timer edge.The deadline-handler sabotage
The acceptance first asked that dropping the deadline handler make a finding appear. It does not, and the clause now reads "drop the deadline handler: the compiled chart's interrupt-transition assertion goes red" (ruled by the operator, 2026-10-09): the sabotage turns the interrupt-transition assertion red; no Publish finding exists for a dropped deadline handler. With the handler dropped,
Publish.findings/3returns no finding and the compile no warning; what goes red is the compiled-chart test (the deadline's interrupt transition), the two run tests that ask for the confirm lane (the handler is no longer armed) and the Describe test (the handler's line). The note above the compiled-chart test records this. No file underlib/changes.Sabotage, one row per check
completeset to"every"Cancels.onexit: no cancel emittedtrueshelfrenamedrackEach mutation was restored from a copy and checked byte-equal before the next.
Review and gate
No contract surface and no file under
lib/changes; the test module itself is just over 300 lines, so the review tier is the conductor's call. The pre-request review round ran in-turn before this request opened, and its accepted points are in this commit: each pattern's lines are asserted inside their own group and lane, and a one-lane run was added.Gate: full
mix qualitygreen on the committed tree (3,960 of 3,960 tests, 95.3% coverage, dialyzer clean, ADR cites green). No changelog fragment:changelog.d/README.mdexcludes test harness and fixtures.The ADR-0002 typed-send Note does not ride this request: the reference host's typed-send step had not moved to
lib/when this request was written. It has since moved, so whether that Note's pointer needs a dated Note of its own is a follow-up for this repo.