Files
temp/features/tdd_session_list_missing_db.feature
T
hurui200320 1878998b7a refactor(testing): rename tdd_bug/tdd_bug_N tags to tdd_issue/tdd_issue_N
Rename the TDD tag system from tdd_bug/tdd_bug_<N> to tdd_issue/tdd_issue_<N>
across the entire codebase. The tdd_expected_fail tag is unchanged.

The TDD expected-failure workflow is not limited to bug fixes — it applies
equally to any issue type (features, tasks, refactors). The _bug suffix was
misleading and narrowed the perceived scope. The new _issue suffix accurately
reflects that the TDD tagging system applies to any Forgejo issue.

Changes span 92 files:
- features/environment.py: validate_tdd_tags(), should_invert_result(), and
  apply_tdd_inversion() updated — regex, variables, error messages
- robot/tdd_expected_fail_listener.py: _validate_tdd_tags(), _should_invert_result(),
  start_test(), end_test() updated consistently
- 33 Behave .feature files: all @tdd_bug/@tdd_bug_<N> tags renamed
- 29 Robot .robot files: all tdd_bug/tdd_bug_<N> tags renamed
- 3 Robot fixture files renamed (tdd_bug_alone, tdd_missing_tdd_bug,
  tdd_expected_fail_missing_bug_n) with content and references updated
- Tag validation tests and helpers updated (function names, command dispatch
  keys, output strings, fixture references)
- CONTRIBUTING.md: section renamed from 'TDD Bug Test Tags' to
  'TDD Issue Test Tags', all tag references and examples updated
- noxfile.py: comment references updated
- Step definition files, mock helpers, and benchmark files: docstring
  references updated

ISSUES CLOSED: #965
2026-03-27 05:58:35 +00:00

32 lines
1.5 KiB
Gherkin

@tdd_issue @tdd_issue_680
Feature: TDD Issue #680 — session list with missing database
As a developer
I want to verify that `agents session list` handles a missing database
gracefully
So that the bug is captured and will be caught by a regression test
The CLI `session list` command should work even when no database file
exists. Currently `_get_session_service()` calls `container.db()`,
but the Container class has no `db` provider, causing an
AttributeError at runtime. Even after the DI wiring is fixed, the
database file itself must be auto-created so the command returns an
empty list rather than crashing.
Scenario: Session list with missing database exits successfully
Given a CLI runner with no database file present
When I invoke session list with missing db
Then the session list missing db command should exit successfully
And the session list missing db output should not contain "AttributeError"
Scenario: Session list with missing database produces valid JSON
Given a CLI runner with no database file present
When I invoke session list with missing db and format json
Then the session list missing db command should exit successfully
And the session list missing db output should be valid JSON
Scenario: Session list with missing database shows empty list
Given a CLI runner with no database file present
When I invoke session list with missing db
Then the session list missing db command should exit successfully
And the session list missing db output should indicate no sessions