Files
temp/features/session_list_error.feature
T
Brent E. Edwards 4c5589da4e test(cli): add failing TDD tests for session list DI container error
Add 10 Behave BDD scenarios (@tdd_bug @tdd_bug_554 @tdd_expected_fail)
for the session list DI wiring bug where _get_session_service() calls
container.db() but the Container has no db provider (AttributeError).
Scenarios cover empty list, format validation (JSON/YAML/plain/rich),
init-then-list lifecycle, and post-create list paths.

Implement @tdd_expected_fail infrastructure: Behave after_scenario hook
inverts FAIL→PASS (expected) and PASS→FAIL (unexpected fix), plus Robot
Framework listener (Listener API v3) with identical semantics registered
via --listener in both integration_tests and slow_integration_tests nox
sessions.

Migrate 18 existing TDD scenarios across 5 feature files from legacy
@tdd @bugNNN convention to @tdd_bug @tdd_bug_NNN per CONTRIBUTING.md
§ TDD Bug Test Tags.

Includes Robot Framework integration smoke tests and ASV service-layer
benchmarks.

Refs: #554
2026-03-10 21:24:42 +00:00

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"