Files
cleveragents-core/features/tui_session_persistence.feature
T
HAL9000 e2d302dcaf fix(tui): resolve format, AmbiguousStep, and coverage gaps in session persistence
- Apply ruff format to store.py (split multi-arg conn.execute calls) and
  steps file (collapse single-arg execute to one line)
- Fix AmbiguousStep: add literal quotes to @given/@then patterns so
  'a session with id "{session_id}"' is unambiguous vs the
  'in the database' variant; update all dependent then-steps consistently
- Mark if TYPE_CHECKING block with # pragma: no cover (never executed)
- Add scenario + step for default db_path to cover store.py lines 32-34
  (uses unittest.mock.patch on Path.home to avoid touching real homedir)

ISSUES CLOSED: #10648
2026-06-13 14:07:02 -04:00

52 lines
2.0 KiB
Gherkin

Feature: TUI Session Persistence
As a user
I want my TUI session state to be persisted to SQLite
So that I can resume my work when I restart the TUI
Background:
Given a clean TUI session database
Scenario: Database is created on first launch
When the TUI session store is initialized
Then the SQLite database file exists at ~/.local/state/cleveragents/tui.db
And the database has sessions and active_session tables
Scenario: Save and load a session
Given a session with id "test-session" and transcript ["hello", "world"]
When I save the session to the database
Then the session can be loaded from the database
And the loaded session has the same id and transcript
Scenario: Set and get active session
Given a session with id "session-1"
When I set it as the active session
Then the active session id is "session-1"
Scenario: List all sessions
Given sessions with ids ["session-1", "session-2", "session-3"]
When I save all sessions to the database
Then listing sessions returns all three session ids
Scenario: Delete a session
Given a session with id "to-delete" in the database
When I delete the session
Then the session can no longer be loaded from the database
Scenario: Clear all sessions
Given sessions with ids ["session-1", "session-2"]
When I save all sessions to the database
And I clear all sessions
Then the database has no sessions
And there is no active session
Scenario: Restore last active session on startup
Given a session with id "last-session" and transcript ["msg1", "msg2"]
When I save the session and set it as active
And I create a new session store instance
Then the active session is "last-session"
And the session data is restored correctly
Scenario: Store uses default database path when none is specified
Given the TUI session store is created with default database path
Then the SQLite database file exists at ~/.local/state/cleveragents/tui.db