forked from HAL9000/cleveragents-core
62ded31c24
Route the 'agents actor add' CLI command through ActorRegistry.add() instead of the legacy registry.upsert_actor() path. This ensures the original YAML text, schema_version, and compiled_metadata are preserved in the database. Changes: - src/cleveragents/cli/commands/actor.py: Add _load_config_text() helper that returns both raw text and parsed dict. Refactor add() to call registry.add() with the raw yaml_text and update=update_existing flag when a registry is available. The service fallback path (no registry) is unchanged. - features/steps/actor_cli_steps.py: Update add command step definitions to mock registry.add() instead of registry.upsert_actor(). Update 'the actor add should pass the loaded config' assertion to verify registry.add() is called with a non-empty yaml_text string. - features/steps/actor_cli_yaml_steps.py: Update add command steps to mock registry.add() instead of registry.upsert_actor(). - features/steps/actor_add_rich_output_steps.py: Update add command steps to mock registry.add() instead of registry.upsert_actor(). - robot/helper_actor_add_rich_output.py: Update helper to mock registry.add() instead of registry.upsert_actor(). - features/actor_add_yaml_first_path.feature: New Behave feature verifying the YAML-first persistence path is used by actor add. - features/steps/actor_add_yaml_first_path_steps.py: Step definitions for the new YAML-first path feature. - robot/actor_add_yaml_first_path.robot: New Robot integration tests verifying yaml_text is preserved and upsert_actor is not called. - robot/helper_actor_add_yaml_first_path.py: Helper script for Robot tests. Fixes #3426 ISSUES CLOSED: #3426
42 lines
1.9 KiB
Gherkin
42 lines
1.9 KiB
Gherkin
Feature: Actor add CLI uses YAML-first persistence path
|
|
As a developer
|
|
I want `agents actor add` to route through ActorRegistry.upsert_actor() with yaml_text
|
|
So that the original YAML text, schema_version, and compiled_metadata
|
|
are preserved in the database while all CLI flags are honoured
|
|
|
|
Scenario: Actor add calls registry.upsert_actor() with raw yaml_text
|
|
Given an actor CLI runner
|
|
And I have an actor YAML-only config file
|
|
When I run actor add via registry yaml-first path
|
|
Then registry.upsert_actor() should be called with the raw yaml text
|
|
|
|
Scenario: Actor add with --update flag calls registry.upsert_actor() with update_existing
|
|
Given an actor CLI runner
|
|
And I have an actor JSON config file
|
|
When I run actor add with update flag via yaml-first path
|
|
Then registry.upsert_actor() should be called with update=True
|
|
|
|
Scenario: Actor add preserves yaml_text for YAML config files
|
|
Given an actor CLI runner
|
|
And I have an actor YAML-only config file
|
|
When I run actor add via registry yaml-first path
|
|
Then registry.upsert_actor() should receive the original yaml text content
|
|
|
|
Scenario: Actor add preserves yaml_text for JSON config files
|
|
Given an actor CLI runner
|
|
And I have an actor JSON config file
|
|
When I run actor add via registry yaml-first path
|
|
Then registry.upsert_actor() should be called with the raw yaml text
|
|
|
|
Scenario: Actor add with --set-default sets actor as default
|
|
Given an actor CLI runner
|
|
And I have an actor YAML-only config file
|
|
When I run actor add with set-default flag via yaml-first path
|
|
Then registry.upsert_actor() should be called with set_default=True
|
|
|
|
Scenario: Actor add with --option applies option overrides
|
|
Given an actor CLI runner
|
|
And I have an actor YAML-only config file
|
|
When I run actor add with option override via yaml-first path
|
|
Then registry.upsert_actor() should be called with option_overrides containing the override
|