Skip to content

FlowActionServiceTest: 12 tests could not construct the service; 9 behavioural failures underneath #2073

Description

@rubenvdlinde

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions