On development, every test in tests/Unit/Service/Flow/FlowActionServiceTest.php errored before reaching an assertion:
ArgumentCountError: Too few arguments to function FlowActionService::__construct(),
7 passed in FlowActionServiceTest.php on line 52 and exactly 9 expected
FlowActionService gained EventCatalogService and ObjectService when the object-CRUD action nodes landed (e6925cc3b), and the test construction was never updated. So the suite has been reporting nothing at all for that service.
Fixed mechanically in #2072 — the constructor call now passes both collaborators, which turns 12 "cannot construct" errors into real signal.
What that signal says — 9 real failures
These are behavioural and I have deliberately NOT touched them, because "fixing" them by rewriting assertions to match whatever the code now does is exactly the test theatre this repo has been bitten by before. They need whoever owns the object-CRUD action work to say which side is wrong.
Representative case — testAgentActionMissingResultFieldIsSkippedAndLogged:
- The test asserts that an
agent action with no resultField is skipped and logged as a warning.
- The action is skipped (
dispatchTyped is never called, as expected).
- But no warning is emitted.
So an agent action that is silently misconfigured now disappears without a trace. That is either a lost guard (the warning should be restored) or an intentional change (the test should be updated to match). From outside the change that introduced it, I cannot tell which — but a step that skips silently is the failure mode this codebase keeps paying for, so my guess is the guard.
The other 8 are the same shape: expectations about warnings and about IMailer::send() being called that no longer hold.
Why it matters beyond this file
FlowActionService is the pre-engine action runner. As consumers migrate onto FlowEngine + IFlowNode (#2072), its behaviour is the reference for what the equivalent nodes must do. A test suite that has not actually run since e6925cc3b is a poor reference.
On
development, every test intests/Unit/Service/Flow/FlowActionServiceTest.phperrored before reaching an assertion:FlowActionServicegainedEventCatalogServiceandObjectServicewhen the object-CRUD action nodes landed (e6925cc3b), and the test construction was never updated. So the suite has been reporting nothing at all for that service.Fixed mechanically in #2072 — the constructor call now passes both collaborators, which turns 12 "cannot construct" errors into real signal.
What that signal says — 9 real failures
These are behavioural and I have deliberately NOT touched them, because "fixing" them by rewriting assertions to match whatever the code now does is exactly the test theatre this repo has been bitten by before. They need whoever owns the object-CRUD action work to say which side is wrong.
Representative case —
testAgentActionMissingResultFieldIsSkippedAndLogged:agentaction with noresultFieldis skipped and logged as a warning.dispatchTypedis never called, as expected).So an agent action that is silently misconfigured now disappears without a trace. That is either a lost guard (the warning should be restored) or an intentional change (the test should be updated to match). From outside the change that introduced it, I cannot tell which — but a step that skips silently is the failure mode this codebase keeps paying for, so my guess is the guard.
The other 8 are the same shape: expectations about warnings and about
IMailer::send()being called that no longer hold.Why it matters beyond this file
FlowActionServiceis the pre-engine action runner. As consumers migrate ontoFlowEngine+IFlowNode(#2072), its behaviour is the reference for what the equivalent nodes must do. A test suite that has not actually run sincee6925cc3bis a poor reference.