Files
temp/features/tdd_plan_explain_plan_id.feature
freemo 8ea00f5185 fix: restore CI quality tests to passing state (#4175)
Co-authored-by: Jeffrey Phillips Freeman <the@jeffreyfreeman.me>
Co-committed-by: Jeffrey Phillips Freeman <the@jeffreyfreeman.me>
2026-04-08 11:02:14 +00:00

36 lines
1.9 KiB
Gherkin

@tdd_issue @tdd_issue_968 @mock_only
Feature: TDD Issue #968 — plan explain expects decision_id but test passes plan_id
As a developer
I want to verify that `plan explain <plan_id>` succeeds when given a plan ID
So that the bug is captured and will be caught by a regression test
# This test was written to capture bug #968:
# The `plan explain` CLI command declares its first positional argument as
# `decision_id` (a Decision ULID). When the M3 acceptance test passes a
# plan ID, `svc.get_decision(plan_id)` raises DecisionNotFoundError because
# the plan ID is not a decision ID. The command exits with rc=1 and
# "Decision not found".
#
# The expected fix (#968) will make `explain_decision_cmd` fall back to
# treating the argument as a plan_id when decision lookup fails looking
# up decisions for the plan via `decision_service.list_decisions(plan_id)`
# and explaining the root decision.
#
# These tests assert the *fixed* behaviour (rc=0 with decision details) and
# will FAIL until the bug is fixed. The @tag inverts the
# result so CI passes.
Scenario: Plan explain succeeds when given a plan_id with decisions
Given tdd968 a mock DecisionService where get_decision raises DecisionNotFoundError for a plan id
And tdd968 the same mock DecisionService returns decisions via list_decisions for the plan id
When tdd968 I invoke plan explain with the plan id
Then tdd968 the command should exit with return code 0
And tdd968 the output should contain decision details
Scenario: Plan explain with plan_id shows root decision question
Given tdd968 a mock DecisionService where get_decision raises DecisionNotFoundError for a plan id
And tdd968 the same mock DecisionService returns decisions via list_decisions for the plan id
When tdd968 I invoke plan explain with the plan id
Then tdd968 the command should exit with return code 0
And tdd968 the output should contain the root decision question