afe89964df
CI / push-validation (pull_request) Successful in 26s
CI / helm (pull_request) Successful in 50s
CI / lint (pull_request) Successful in 52s
CI / build (pull_request) Successful in 51s
CI / quality (pull_request) Successful in 52s
CI / security (pull_request) Successful in 1m15s
CI / typecheck (pull_request) Successful in 1m35s
CI / unit_tests (pull_request) Successful in 5m25s
CI / docker (pull_request) Successful in 1m34s
CI / integration_tests (pull_request) Failing after 10m26s
CI / coverage (pull_request) Failing after 18m51s
CI / status-check (pull_request) Has been cancelled
The tdd_expected_fail listener (robot/tdd_expected_fail_listener.py and features/environment.py) inverts test results: a test tagged @tdd_expected_fail that PASSES is forced to FAIL with the message "Bug appears to be fixed. Remove the tdd_expected_fail tag…". After rebasing onto master, 22 scenarios across 11 files were triggering that forced-failure path because the underlying bugs (#4199, #4201, #4202, #4203, #4205, #4206, #4243, #4252, #4301, #4303, #4304) have been fixed on master but the @tdd_expected_fail tags were never removed. This commit removes the stale tag (keeping @tdd_issue and @tdd_issue_<N> for traceability, per the master-side pattern in robot/tdd_skill_add_regression.robot:9 "tag removed after bug fix"). Files touched (lines: where the stale tag was): features/plan_cli_spec_alignment.feature (121, 128, 136) robot/a2a_facade.robot (40) robot/actor_cli_show.robot (13, 30) robot/actor_configuration.robot (8) robot/actor_context_export_import.robot (20, 71, 92) robot/cli_extensions.robot (61) robot/cli_formats.robot (14, 23, 30, 48, 57, 85) robot/cli_lifecycle_e2e.robot (77, 87) robot/config_project_scope.robot (37) robot/config_resolution.robot (13) robot/container_tool_exec.robot (137) Verified locally: targeted unit_tests run on features/plan_cli_spec_alignment.feature now passes 20/20 (was 17/20 with 3 scenarios forced-failed by the inversion). ISSUES CLOSED: #3677
142 lines
5.8 KiB
Gherkin
142 lines
5.8 KiB
Gherkin
Feature: Plan CLI spec alignment
|
|
As a developer
|
|
I want the plan CLI commands aligned to the v3 spec
|
|
So that plan use/list/status flags are consistent with the specification
|
|
|
|
Background:
|
|
Given a plan spec alignment CLI runner
|
|
And a plan spec alignment mocked lifecycle service
|
|
|
|
# ---- plan use: multiple projects (positional) ----
|
|
Scenario: Plan use with multiple positional projects
|
|
Given a plan spec alignment action exists
|
|
When I run plan use with positional projects "proj-a" and "proj-b"
|
|
Then the plan spec use should succeed
|
|
And the plan spec use should link projects "proj-a" and "proj-b"
|
|
|
|
# ---- plan use: --automation-profile ----
|
|
Scenario: Plan use with --automation-profile
|
|
Given a plan spec alignment action exists
|
|
When I run plan use with automation profile "trusted"
|
|
Then the plan spec use should succeed
|
|
And the plan spec output should contain "Automation Profile"
|
|
|
|
# ---- plan use: --invariant (repeatable) ----
|
|
Scenario: Plan use with repeatable --invariant
|
|
Given a plan spec alignment action exists
|
|
When I run plan use with invariants "No warnings" and "Keep compat"
|
|
Then the plan spec use should succeed
|
|
And the plan spec use should pass invariants to service
|
|
|
|
# ---- plan use: actor override flags ----
|
|
Scenario: Plan use with strategy-actor override
|
|
Given a plan spec alignment action exists
|
|
When I run plan use with strategy actor "openai/gpt-4"
|
|
Then the plan spec use should succeed
|
|
And the plan spec output should contain "Strategy Actor"
|
|
|
|
Scenario: Plan use with execution-actor override
|
|
Given a plan spec alignment action exists
|
|
When I run plan use with execution actor "anthropic/claude-3"
|
|
Then the plan spec use should succeed
|
|
And the plan spec output should contain "Execution Actor"
|
|
|
|
Scenario: Plan use with estimation-actor override
|
|
Given a plan spec alignment action exists
|
|
When I run plan use with estimation actor "openai/gpt-4"
|
|
Then the plan spec use should succeed
|
|
And the plan spec output should contain "Estimation Actor"
|
|
|
|
Scenario: Plan use with invariant-actor override
|
|
Given a plan spec alignment action exists
|
|
When I run plan use with invariant actor "openai/gpt-4"
|
|
Then the plan spec use should succeed
|
|
And the plan spec output should contain "Invariant Actor"
|
|
|
|
# ---- plan use: --arg name=value ----
|
|
Scenario: Plan use with --arg name=value
|
|
Given a plan spec alignment action exists
|
|
When I run plan use with arg "target_coverage=80"
|
|
Then the plan spec use should succeed
|
|
And the plan spec use should pass argument "target_coverage" with value 80
|
|
|
|
# ---- plan list: filter combinations ----
|
|
Scenario: Plan list with --phase filter
|
|
Given plan spec alignment plans exist
|
|
When I run plan list with phase "strategize"
|
|
Then the plan spec list should succeed
|
|
|
|
Scenario: Plan list with --state filter
|
|
Given plan spec alignment plans exist
|
|
When I run plan list with state "queued"
|
|
Then the plan spec list should succeed
|
|
|
|
Scenario: Plan list with --processing-state filter
|
|
Given plan spec alignment plans exist
|
|
When I run plan list with processing-state "complete"
|
|
Then the plan spec list should succeed
|
|
|
|
Scenario: Plan list with --project filter
|
|
Given plan spec alignment plans exist
|
|
When I run plan list with project "proj-a"
|
|
Then the plan spec list should succeed
|
|
|
|
Scenario: Plan list with --action filter
|
|
Given plan spec alignment plans exist
|
|
When I run plan list with action "local/test-action"
|
|
Then the plan spec list should succeed
|
|
|
|
Scenario: Plan list with regex filter
|
|
Given plan spec alignment plans exist
|
|
When I run plan list with regex "test-action"
|
|
Then the plan spec list should succeed
|
|
|
|
Scenario: Plan list with combined filters
|
|
Given plan spec alignment plans exist
|
|
When I run plan list combining phase "strategize" with project "proj-a"
|
|
Then the plan spec list should succeed
|
|
|
|
# ---- plan status: output fields ----
|
|
Scenario: Plan status renders all required fields
|
|
Given a plan spec alignment plan exists for status
|
|
When I run plan status for the plan
|
|
Then the plan spec status should succeed
|
|
And the plan spec status should contain "Action"
|
|
And the plan spec status should contain "Phase"
|
|
And the plan spec status should contain "Processing State"
|
|
And the plan spec status should contain "Projects"
|
|
And the plan spec status should contain "Arguments"
|
|
And the plan spec status should contain "Automation Profile"
|
|
And the plan spec status should contain "Created"
|
|
And the plan spec status should contain "Updated"
|
|
|
|
# ---- plan cancel: --reason ----
|
|
Scenario: Plan cancel with --reason
|
|
Given a plan spec alignment plan exists for cancel
|
|
When I run plan cancel with reason "Requirements changed"
|
|
Then the plan spec cancel should succeed
|
|
And the plan spec cancel output should contain "Requirements changed"
|
|
|
|
# ---- plan list: required column rendering ----
|
|
@tdd_issue @tdd_issue_4252
|
|
Scenario: Plan list rich output includes Name column
|
|
Given plan spec alignment plans exist
|
|
When I run plan list with no filters
|
|
Then the plan spec list should succeed
|
|
And the plan spec list output should contain "Name"
|
|
|
|
@tdd_issue @tdd_issue_4252
|
|
Scenario: Plan list rich output includes Updated column
|
|
Given plan spec alignment plans exist
|
|
When I run plan list with no filters
|
|
Then the plan spec list should succeed
|
|
And the plan spec list output should contain "Updat"
|
|
And the plan spec list output should contain the current year-month timestamp
|
|
|
|
@tdd_issue @tdd_issue_4252
|
|
Scenario: Plan list rich output includes Invariants column
|
|
Given plan spec alignment plans exist
|
|
When I run plan list with no filters
|
|
Then the plan spec list should succeed
|
|
And the plan spec list output should contain "Invar"
|