280 lines
11 KiB
Gherkin
280 lines
11 KiB
Gherkin
Feature: Actor CLI coverage
|
|
As a developer
|
|
I want actor CLI commands covered
|
|
So that actor management paths stay stable
|
|
|
|
Scenario: Add actor fails without config
|
|
Given an actor CLI runner
|
|
When I run actor add without config
|
|
Then the actor command should fail with bad parameter
|
|
|
|
Scenario: Add actor with JSON config file
|
|
Given an actor CLI runner
|
|
And I have an actor JSON config file
|
|
When I run actor add with that config
|
|
Then the actor add should pass the loaded config
|
|
|
|
Scenario: Add actor requires unsafe confirmation when config is marked unsafe
|
|
Given an actor CLI runner
|
|
And I have an unsafe actor JSON config file
|
|
When I run actor add with that config
|
|
Then the actor command should fail with bad parameter
|
|
|
|
Scenario: Add actor allows unsafe config when flag is provided
|
|
Given an actor CLI runner
|
|
And I have an unsafe actor JSON config file
|
|
When I run actor add with that config and unsafe flag
|
|
Then the actor add should pass the loaded config
|
|
|
|
Scenario: Add actor fails when config is missing
|
|
Given an actor CLI runner
|
|
When I run actor add with missing config path
|
|
Then the actor command should fail with bad parameter
|
|
|
|
Scenario: Add actor rejects non-dictionary config input
|
|
Given an actor CLI runner
|
|
And I have an actor list config file
|
|
When I run actor add with that config
|
|
Then the actor command should fail with bad parameter
|
|
|
|
Scenario: Add actor falls back to YAML-only config
|
|
Given an actor CLI runner
|
|
And I have an actor YAML-only config file
|
|
When I run actor add with that config
|
|
Then the actor add should pass the loaded config
|
|
|
|
Scenario: Add actor uses service path with graph descriptor
|
|
Given an actor CLI runner
|
|
And I have an actor graph config file
|
|
When I run actor add via service with that config
|
|
Then the service actor add should include graph descriptor
|
|
|
|
Scenario: Add actor merges CLI options into config blob
|
|
Given an actor CLI runner
|
|
And I have an actor JSON config file
|
|
When I run actor add with that config and options overrides
|
|
Then the actor add should pass the loaded config
|
|
|
|
Scenario: Add actor rejects empty config file
|
|
Given an actor CLI runner
|
|
And I have an empty actor YAML config file
|
|
When I run actor add with that config
|
|
Then the actor command should fail with bad parameter
|
|
|
|
Scenario: Add actor aborts on business rule violation
|
|
Given an actor CLI runner
|
|
When I run actor add with business rule violation
|
|
Then the actor command should abort with error
|
|
|
|
Scenario: Add actor rejects unsafe service config without confirmation
|
|
Given an actor CLI runner
|
|
And I have an unsafe actor JSON config file
|
|
When I run actor add via service without unsafe flag
|
|
Then the actor command should fail with bad parameter
|
|
And the actor service should not be called
|
|
|
|
Scenario: Update actor from YAML config and safe flag
|
|
Given an actor CLI runner
|
|
And I have an actor YAML config file returning empty data
|
|
When I run actor update with safe flag and yaml config
|
|
Then the actor update should set safe and merge config
|
|
|
|
Scenario: Update actor toggles unsafe flag
|
|
Given an actor CLI runner
|
|
When I run actor update with unsafe flag
|
|
Then the actor update should set unsafe flag
|
|
|
|
Scenario: Update actor aborts on validation error
|
|
Given an actor CLI runner
|
|
When I run actor update with validation error
|
|
Then the actor command should abort with error
|
|
|
|
Scenario: Update actor aborts when not found
|
|
Given an actor CLI runner
|
|
When I run actor update for missing actor
|
|
Then the actor command should abort for missing actor
|
|
|
|
Scenario: Update actor rejects conflicting safety flags
|
|
Given an actor CLI runner
|
|
When I run actor update with conflicting flags
|
|
Then the actor command should fail with bad parameter
|
|
|
|
Scenario: Update actor requires unsafe confirmation when requested
|
|
Given an actor CLI runner
|
|
When I run actor update requiring unsafe confirmation
|
|
Then the actor command should fail with bad parameter
|
|
|
|
Scenario: Update actor rejects unsafe service config without confirmation
|
|
Given an actor CLI runner
|
|
And I have an unsafe actor JSON config file
|
|
When I run actor update via service without unsafe flag
|
|
Then the actor command should abort with error
|
|
And the actor service should not be called
|
|
|
|
Scenario: Remove actor succeeds
|
|
Given an actor CLI runner
|
|
When I run actor remove successfully
|
|
Then the actor remove should succeed
|
|
|
|
Scenario: Remove actor aborts on validation error
|
|
Given an actor CLI runner
|
|
When I run actor remove and it fails validation
|
|
Then the actor command should abort with error
|
|
|
|
Scenario: List actors when none exist
|
|
Given an actor CLI runner
|
|
When I run actor list with no actors
|
|
Then the actor list should report empty state
|
|
|
|
Scenario: List actors with entries
|
|
Given an actor CLI runner
|
|
When I run actor list with two actors
|
|
Then the actor list should render rows
|
|
|
|
Scenario: Show actor displays details
|
|
Given an actor CLI runner
|
|
When I run actor show successfully
|
|
Then the actor show should display details
|
|
|
|
Scenario: Show actor aborts on validation error
|
|
Given an actor CLI runner
|
|
When I run actor show with validation error
|
|
Then the actor command should abort with error
|
|
|
|
Scenario: Set default actor succeeds
|
|
Given an actor CLI runner
|
|
When I run set-default actor successfully
|
|
Then the set default actor should display details
|
|
|
|
Scenario: Set default actor aborts on business rule violation
|
|
Given an actor CLI runner
|
|
When I run set-default actor with violation
|
|
Then the actor command should abort with error
|
|
|
|
Scenario: Add actor merges options and parses boolean override
|
|
Given an actor CLI runner
|
|
And I have an actor JSON config file with options
|
|
When I run actor add with boolean option override
|
|
Then the actor add should pass the loaded config
|
|
|
|
Scenario: Add actor rejects option without separator
|
|
Given an actor CLI runner
|
|
And I have an actor JSON config file
|
|
When I run actor add with malformed option
|
|
Then the actor command should fail with bad parameter
|
|
|
|
Scenario: Add actor rejects empty option key
|
|
Given an actor CLI runner
|
|
And I have an actor JSON config file
|
|
When I run actor add with empty option key
|
|
Then the actor command should fail with bad parameter
|
|
|
|
Scenario: Add actor via service rejects unsafe canonical config
|
|
Given an actor CLI runner
|
|
And I have an actor JSON config file
|
|
When I run actor add via service with unsafe canonical blob
|
|
Then the actor command should abort with error
|
|
|
|
Scenario: Update actor includes option overrides in registry call
|
|
Given an actor CLI runner
|
|
When I run actor update with option overrides
|
|
Then the actor update should include option overrides
|
|
|
|
Scenario: Update actor parses uppercase boolean option override
|
|
Given an actor CLI runner
|
|
When I run actor update with uppercase boolean option override
|
|
Then the actor update should include option overrides
|
|
|
|
Scenario: Update actor via service rejects unsafe canonical config
|
|
Given an actor CLI runner
|
|
And I have an actor JSON config file
|
|
When I run actor update via service with unsafe canonical blob
|
|
Then the actor command should abort with error
|
|
|
|
Scenario: Update actor via service succeeds with safe config
|
|
Given an actor CLI runner
|
|
And I have an actor JSON config file
|
|
When I run actor update via service with safe config
|
|
Then the actor service update should succeed
|
|
|
|
Scenario: Remove actor falls back to service path
|
|
Given an actor CLI runner
|
|
When I run actor remove via service path
|
|
Then the actor service remove should be called
|
|
|
|
Scenario: Add actor parses uppercase boolean option override
|
|
Given an actor CLI runner
|
|
And I have an actor JSON config file with options
|
|
When I run actor add with uppercase boolean option override
|
|
Then the actor add should pass the loaded config
|
|
|
|
Scenario: Run actor uses load context with named context
|
|
Given an actor CLI runner
|
|
And I have an actor JSON config file
|
|
And I have a saved context JSON file
|
|
And I have an actor output file path
|
|
When I run actor run with load context and context name
|
|
Then the actor run should write output and persist context
|
|
|
|
Scenario: Run actor loads context without name
|
|
Given an actor CLI runner
|
|
And I have an actor JSON config file
|
|
And I have a saved context JSON file
|
|
When I run actor run with load context only
|
|
Then the actor run should update global context and echo result
|
|
|
|
Scenario: Run actor reuses named context
|
|
Given an actor CLI runner
|
|
And I have an actor JSON config file
|
|
When I run actor run with context only
|
|
Then the actor run should reuse saved context
|
|
|
|
Scenario: Run actor executes without context
|
|
Given an actor CLI runner
|
|
And I have an actor JSON config file
|
|
When I run actor run without context
|
|
Then the actor run should call single shot without context manager
|
|
|
|
Scenario: Run actor forwards allow-rxpy flag with named context and output
|
|
Given an actor CLI runner
|
|
And I have an actor JSON config file
|
|
And I have a saved context JSON file
|
|
And I have an actor output file path
|
|
When I run actor run with load context and context name allowing rxpy
|
|
Then the actor run should write output and persist context
|
|
And the actor run should pass allow rxpy flag
|
|
|
|
Scenario: Run actor forwards allow-rxpy flag when loading context only
|
|
Given an actor CLI runner
|
|
And I have an actor JSON config file
|
|
And I have a saved context JSON file
|
|
When I run actor run with load context only allowing rxpy
|
|
Then the actor run should update global context and echo result
|
|
And the actor run should pass allow rxpy flag
|
|
|
|
Scenario: Run actor forwards allow-rxpy flag when reusing context
|
|
Given an actor CLI runner
|
|
And I have an actor JSON config file
|
|
When I run actor run with context only allowing rxpy
|
|
Then the actor run should reuse saved context
|
|
And the actor run should pass allow rxpy flag
|
|
|
|
Scenario: Run actor forwards allow-rxpy flag without context
|
|
Given an actor CLI runner
|
|
And I have an actor JSON config file
|
|
When I run actor run without context allowing rxpy
|
|
Then the actor run should call single shot without context manager
|
|
And the actor run should pass allow rxpy flag
|
|
|
|
Scenario: Run actor reports unsafe configuration error
|
|
Given an actor CLI runner
|
|
And I have an actor JSON config file
|
|
When I run actor run with unsafe configuration error
|
|
Then the actor run should exit with error code 1
|
|
|
|
Scenario: Run actor reports clever agents error
|
|
Given an actor CLI runner
|
|
And I have an actor JSON config file
|
|
When I run actor run with clever agents error
|
|
Then the actor run should exit with error code 2
|