Files
cleveragents-core/features/actor_cli_coverage.feature
T

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