8ea00f5185
CI / unit_tests (push) Has been cancelled
CI / benchmark-publish (push) Has been cancelled
CI / lint (push) Has been cancelled
CI / typecheck (push) Has been cancelled
CI / security (push) Has been cancelled
CI / quality (push) Has been cancelled
CI / integration_tests (push) Has been cancelled
CI / e2e_tests (push) Has been cancelled
CI / coverage (push) Has been cancelled
CI / benchmark-regression (push) Has been cancelled
CI / build (push) Has been cancelled
CI / push-validation (push) Has been cancelled
CI / status-check (push) Has been cancelled
CI / docker (push) Has been cancelled
CI / helm (push) Has been cancelled
Co-authored-by: Jeffrey Phillips Freeman <the@jeffreyfreeman.me> Co-committed-by: Jeffrey Phillips Freeman <the@jeffreyfreeman.me>
145 lines
5.9 KiB
Gherkin
145 lines
5.9 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 @tdd_expected_fail @skip
|
|
@skip
|
|
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 @tdd_expected_fail @skip
|
|
@skip
|
|
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 @tdd_expected_fail @skip
|
|
@skip
|
|
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"
|