96 lines
3.5 KiB
Gherkin
96 lines
3.5 KiB
Gherkin
Feature: CleverClaude Command-line Interface
|
|
As a user of CleverClaude
|
|
I want to interact with the AI agent orchestration system via CLI
|
|
So that I can manage agents, swarms, and tasks efficiently
|
|
|
|
Background:
|
|
Given the CleverClaude CLI is available
|
|
And I have a test environment
|
|
|
|
@smoke
|
|
Scenario: Display version information
|
|
When I run "cleverclaude --version"
|
|
Then the exit code should be 0
|
|
And the output should contain "CleverClaude Python v"
|
|
|
|
@smoke
|
|
Scenario: Display help information
|
|
When I run "cleverclaude --help"
|
|
Then the exit code should be 0
|
|
And the output should contain "Advanced AI Agent Orchestration System"
|
|
And the output should contain "init"
|
|
And the output should contain "start"
|
|
And the output should contain "agent"
|
|
And the output should contain "swarm"
|
|
|
|
Scenario: Initialize project with default template
|
|
Given I have an empty directory
|
|
When I run "cleverclaude init"
|
|
Then the exit code should be 0
|
|
And the output should contain "CleverClaude project initialized successfully"
|
|
And the directory ".cleverclaude" should exist
|
|
And the file ".cleverclaude/config.yaml" should exist
|
|
And the file ".env.example" should exist
|
|
And the directory "examples" should exist
|
|
|
|
Scenario: Initialize project with custom directory
|
|
Given I have a target directory "test-project"
|
|
When I run "cleverclaude init --dir test-project"
|
|
Then the exit code should be 0
|
|
And the output should contain "CleverClaude project initialized successfully"
|
|
And the directory "test-project/.cleverclaude" should exist
|
|
|
|
Scenario: Initialize project with production template
|
|
Given I have an empty directory
|
|
When I run "cleverclaude init --template production"
|
|
Then the exit code should be 0
|
|
And the file "docker-compose.yml" should exist
|
|
And the file ".cleverclaude/config.yaml" should contain "environment: \"production\""
|
|
|
|
Scenario: Fail to initialize in non-empty directory without force
|
|
Given I have a directory with existing files
|
|
When I run "cleverclaude init"
|
|
Then the exit code should be 1
|
|
And the output should contain "Use --force to overwrite"
|
|
|
|
Scenario: Force initialize in non-empty directory
|
|
Given I have a directory with existing files
|
|
When I run "cleverclaude init --force"
|
|
Then the exit code should be 0
|
|
And the output should contain "CleverClaude project initialized successfully"
|
|
|
|
@wip
|
|
Scenario: Start CleverClaude orchestration system
|
|
Given I have an initialized CleverClaude project
|
|
When I start the orchestration system in test mode
|
|
Then the system should initialize successfully
|
|
And the agent manager should be running
|
|
And the API server should be accessible
|
|
|
|
@wip
|
|
Scenario: Display system status
|
|
Given CleverClaude is running
|
|
When I run "cleverclaude status"
|
|
Then the exit code should be 0
|
|
And the output should contain system health information
|
|
And the output should contain agent count
|
|
And the output should contain memory usage
|
|
|
|
Scenario Outline: CLI command help
|
|
When I run "cleverclaude <command> --help"
|
|
Then the exit code should be 0
|
|
And the output should contain command-specific help
|
|
|
|
Examples:
|
|
| command |
|
|
| init |
|
|
| start |
|
|
| status |
|
|
| config |
|
|
| monitor |
|
|
|
|
@hypothesis
|
|
Scenario: Fuzz test CLI with invalid arguments
|
|
When I fuzz test the CLI with random invalid arguments
|
|
Then all invocations should either succeed or fail gracefully
|
|
And no invocation should crash the system |