Files
cleveragents-core/features/actor_registry_coverage.feature

57 lines
3.0 KiB
Gherkin

Feature: Actor registry coverage
As a developer
I want actor registry behaviors covered
So that built-in and custom actors are validated
Scenario: Skips built-in generation when no providers configured
Given an actor registry with no configured providers
When I ensure built-in actors are generated
Then no actors should be created
And no default actor should be set
Scenario: Generates built-in actors and selects defaults
Given provider defaults are provider "openai" model "gpt-4o-mini"
And an actor registry with configured providers:
| type | name | model |
| openai | OpenAI | gpt-4o-mini |
| anthropic | Claude | opus |
When I ensure built-in actors are generated
Then the registry should list actors ["OpenAI/gpt-4o-mini", "Claude/opus"]
And the default actor should be "OpenAI/gpt-4o-mini"
When I remove actor "OpenAI/gpt-4o-mini"
Then the stored actors should be ["Claude/opus"]
Scenario: Built-in actors include graph descriptors and capabilities
Given an actor registry with configured providers:
| type | name | model |
| openai | OpenAI | gpt-4o-mini |
When I ensure built-in actors are generated
Then the built-in actor payload should include graph descriptor and capabilities for "OpenAI/gpt-4o-mini"
Scenario: Chooses first built-in actor when no defaults provided
Given an actor registry with configured providers:
| type | name | model |
| openai | OpenAI | gpt-4o-mini |
| anthropic | Claude | opus |
When I ensure built-in actors are generated
Then the registry should list actors ["OpenAI/gpt-4o-mini", "Claude/opus"]
And the default actor should be "OpenAI/gpt-4o-mini"
Scenario: Rejects unsafe actor configurations without confirmation
Given an actor registry with no configured providers
When I attempt to upsert actor "local/unsafe" with unsafe config
Then a registry validation error should be raised for unsafe actor
Scenario: Canonicalizes actor blob with graph descriptor and defaults
Given an actor registry with no configured providers
When I upsert actor "local/canonical" with provider "custom" model "demo-model" graph descriptor {"graph": "yes"} and options {"foo": "bar"}
Then the stored actor config should include provider "custom" model "demo-model" graph descriptor {"graph": "yes"} unsafe false and option "foo" "bar"
Scenario: Wrapper methods preserve supplied graph descriptor and defaults
Given an actor registry with no configured providers
When I upsert actor "local/wrapper" with raw config {"provider": "local", "model": "wrap-model", "graph_descriptor": {"graph": "existing"}, "options": {"alpha": 1}}
And I retrieve actor "local/wrapper" via the registry
And I set the default actor to "local/wrapper" via the registry
Then the registry default actor via wrapper should be "local/wrapper"
And the saved actor config should keep graph descriptor {"graph": "existing"} and option "alpha" 1