130 lines
4.9 KiB
Gherkin
130 lines
4.9 KiB
Gherkin
Feature: Action CLI commands
|
|
As a developer
|
|
I want to manage actions via CLI commands
|
|
So that I can create and use reusable plan templates
|
|
|
|
Background:
|
|
Given an action CLI runner with mocks
|
|
And a mocked plan lifecycle service
|
|
|
|
# Create command tests
|
|
Scenario: Create action with required parameters
|
|
When I run action CLI create with name "local/test-action" and required parameters
|
|
Then the action CLI create should succeed
|
|
And the action CLI created name should be "local/test-action"
|
|
|
|
Scenario: Create action with all parameters
|
|
When I run action CLI create with all parameters
|
|
Then the action CLI create should succeed
|
|
And the action CLI should have specified arguments
|
|
|
|
Scenario: Create action with --available flag
|
|
When I run action CLI create with the available flag
|
|
Then the action CLI should create in available state
|
|
|
|
Scenario: Create action with invalid argument format fails
|
|
When I run action CLI create with invalid argument format
|
|
Then the action CLI command should abort
|
|
|
|
Scenario: Create action surfaces validation error
|
|
When I run action CLI create with validation error
|
|
Then the action CLI should abort with validation error
|
|
|
|
Scenario: Create action surfaces service error
|
|
When I run action CLI create with service error
|
|
Then the action CLI should abort with service error
|
|
|
|
# List command tests
|
|
Scenario: List actions shows all actions
|
|
Given there are mocked existing actions
|
|
When I run action CLI list
|
|
Then the action CLI should show all actions in a table
|
|
|
|
Scenario: List actions with namespace filter
|
|
Given there are mocked existing actions
|
|
When I run action CLI list with namespace filter "local"
|
|
Then the action CLI should show only local namespace actions
|
|
|
|
Scenario: List actions with available filter
|
|
Given there are mocked existing actions
|
|
When I run action CLI list with available filter
|
|
Then the action CLI should show only available actions
|
|
|
|
Scenario: List actions with invalid state filter
|
|
When I run action CLI list with invalid state "unknown"
|
|
Then the action CLI should abort with invalid state
|
|
|
|
Scenario: List actions handles service error
|
|
When I run action CLI list with service error
|
|
Then the action CLI should abort with service error
|
|
|
|
Scenario: List actions when empty
|
|
Given there are no mocked actions
|
|
When I run action CLI list
|
|
Then the action CLI should show no actions message
|
|
|
|
# Show command tests
|
|
Scenario: Show action by ID
|
|
Given there is a mocked action with ID "01ARZ3NDEKTSV4RRFFQ69G5FAV"
|
|
When I run action CLI show with that ID
|
|
Then the action CLI should show the action details
|
|
|
|
Scenario: Show action by name
|
|
Given there is a mocked action with name "local/my-action"
|
|
When I run action CLI show with name "local/my-action"
|
|
Then the action CLI should show the action details
|
|
|
|
Scenario: Show action without optional descriptions
|
|
Given there is a mocked action without descriptions
|
|
When I run action CLI show with that ID
|
|
Then the action CLI should show the action details
|
|
|
|
Scenario: Show action not found
|
|
When I run action CLI show with unknown ID
|
|
Then the action CLI command should abort for missing action
|
|
|
|
Scenario: Show action handles service error
|
|
When I run action CLI show with service error
|
|
Then the action CLI should abort with service error
|
|
|
|
# Available command tests
|
|
Scenario: Make action available
|
|
Given there is a mocked draft action
|
|
When I run action CLI available with the action ID
|
|
Then the action CLI should make action available
|
|
|
|
Scenario: Make action available by name
|
|
Given there is a mocked draft action
|
|
When I run action CLI available with the action name
|
|
Then the action CLI should make action available
|
|
And the action CLI should resolve action by name
|
|
|
|
Scenario: Make already available action fails
|
|
Given there is a mocked available action
|
|
When I run action CLI available with the action ID
|
|
Then the action CLI command should abort with business rule violation
|
|
|
|
Scenario: Make action available not found
|
|
When I run action CLI available with unknown ID
|
|
Then the action CLI command should abort for missing action
|
|
|
|
Scenario: Make action available handles service error
|
|
Given there is a mocked draft action
|
|
When I run action CLI available with service error
|
|
Then the action CLI should abort with service error
|
|
|
|
# Archive command tests
|
|
Scenario: Archive action
|
|
Given there is a mocked available action
|
|
When I run action CLI archive with the action ID
|
|
Then the action CLI should archive the action
|
|
|
|
Scenario: Archive action not found
|
|
When I run action CLI archive with unknown ID
|
|
Then the action CLI command should abort for missing action
|
|
|
|
Scenario: Archive action handles service error
|
|
Given there is a mocked available action
|
|
When I run action CLI archive with service error
|
|
Then the action CLI should abort with service error
|