forked from HAL9000/cleveragents-core
bed7072dde
Bug #554 is NOT yet fixed — the DI container still lacks a db provider. The previous commit incorrectly removed tdd_expected_fail tags, exposing the real failures in Behave unit tests (13 scenarios). Root cause: the Robot helper had its own pass/fail inversion (a workaround from before tdd_expected_fail_listener existed). The master merge brought in the listener, causing double inversion that made Robot tests appear to pass. This commit: - Rewrites the helper to report real outcomes (exit 0 = bug fixed) - Restores tdd_expected_fail on all 16 Robot + Behave scenarios - Lets the listener (Robot) and environment.py (Behave) handle inversion
86 lines
4.4 KiB
Gherkin
86 lines
4.4 KiB
Gherkin
# TDD tests for bug #554 — expected to fail until the DI container fix lands.
|
|
# Once the fix is applied, remove the @tdd_expected_fail tags and verify all
|
|
# scenarios pass.
|
|
Feature: Session list command handles missing database gracefully
|
|
As a developer using the agents CLI
|
|
I want "agents session list" to work after a fresh init
|
|
So that I can view my sessions without a DI container error
|
|
|
|
Background:
|
|
Given a session-list-error CLI runner using the real DI path
|
|
|
|
@tdd_bug @tdd_bug_554 @tdd_expected_fail
|
|
Scenario: Session list returns empty list when no sessions exist
|
|
When I invoke session-list-error list with default format
|
|
Then the session-list-error command should exit successfully
|
|
And the session-list-error output should contain "No sessions found"
|
|
And the session-list-error output should not contain "AttributeError"
|
|
|
|
@tdd_bug @tdd_bug_554 @tdd_expected_fail
|
|
Scenario: Session list after init does not raise DI error
|
|
When I invoke session-list-error list with default format
|
|
Then the session-list-error command should exit successfully
|
|
And the session-list-error output should not contain "AttributeError"
|
|
And the session-list-error output should not contain "INTERNAL"
|
|
|
|
@tdd_bug @tdd_bug_554 @tdd_expected_fail
|
|
Scenario: Session list returns sessions after creation via service
|
|
Given a session-list-error service with a pre-populated session
|
|
When I invoke session-list-error list with default format
|
|
Then the session-list-error command should exit successfully
|
|
And the session-list-error output should contain "Sessions ("
|
|
|
|
@tdd_bug @tdd_bug_554 @tdd_expected_fail
|
|
Scenario: Session list works with rich output format
|
|
Given a session-list-error service with a pre-populated session
|
|
When I invoke session-list-error list with format "rich"
|
|
Then the session-list-error command should exit successfully
|
|
And the session-list-error output should contain "Sessions ("
|
|
And the session-list-error output should not contain "AttributeError"
|
|
|
|
@tdd_bug @tdd_bug_554 @tdd_expected_fail
|
|
Scenario: Session list works with JSON output format
|
|
Given a session-list-error service with a pre-populated session
|
|
When I invoke session-list-error list with format "json"
|
|
Then the session-list-error command should exit successfully
|
|
And the session-list-error output should be valid JSON containing "sessions"
|
|
|
|
@tdd_bug @tdd_bug_554 @tdd_expected_fail
|
|
Scenario: Session list works with plain output format
|
|
Given a session-list-error service with a pre-populated session
|
|
When I invoke session-list-error list with format "plain"
|
|
Then the session-list-error command should exit successfully
|
|
And the session-list-error output should contain "Sessions ("
|
|
|
|
@tdd_bug @tdd_bug_554 @tdd_expected_fail
|
|
Scenario: Session list works with YAML output format
|
|
Given a session-list-error service with a pre-populated session
|
|
When I invoke session-list-error list with format "yaml"
|
|
Then the session-list-error command should exit successfully
|
|
And the session-list-error output should be valid YAML containing "sessions"
|
|
|
|
# Empty-list format scenarios (F2/F3) — exercises the empty-list code path
|
|
# with explicit output formats. The production code currently bypasses
|
|
# --format for empty lists, so these document the expected behaviour.
|
|
|
|
@tdd_bug @tdd_bug_554 @tdd_expected_fail
|
|
Scenario: Empty session list with JSON format produces valid JSON
|
|
When I invoke session-list-error list with format "json"
|
|
Then the session-list-error command should exit successfully
|
|
And the session-list-error output should be valid JSON containing "sessions"
|
|
And the session-list-error output should not contain "AttributeError"
|
|
|
|
@tdd_bug @tdd_bug_554 @tdd_expected_fail
|
|
Scenario: Empty session list with YAML format produces valid YAML
|
|
When I invoke session-list-error list with format "yaml"
|
|
Then the session-list-error command should exit successfully
|
|
And the session-list-error output should be valid YAML containing "sessions"
|
|
And the session-list-error output should not contain "AttributeError"
|
|
|
|
@tdd_bug @tdd_bug_554 @tdd_expected_fail
|
|
Scenario: Empty session list with plain format does not error
|
|
When I invoke session-list-error list with format "plain"
|
|
Then the session-list-error command should exit successfully
|
|
And the session-list-error output should contain "No sessions found"
|
|
And the session-list-error output should not contain "AttributeError"
|