Files
hmbown--codewhale/crates/tui/tests/features/session_command_workflows.feature
wehub-resource-sync d68f003000
CI / Change detection (push) Has been cancelled
CI / Version drift (push) Has been cancelled
CI / Lint (push) Has been cancelled
CI / Workflow RLM cache (push) Has been cancelled
CI / Test (macos-latest) (push) Has been cancelled
CI / Test (ubuntu-latest) (push) Has been cancelled
CI / Test (windows-latest) (push) Has been cancelled
CI / npm wrapper smoke (push) Has been cancelled
CI / Mobile runtime smoke (push) Has been cancelled
CI / Workflow lint (push) Has been cancelled
CI / Documentation (push) Has been cancelled
Web Frontend / Lint & Type Check (push) Failing after 1s
Auto-close harvested PRs / close (push) Failing after 1s
cargo-deny / cargo-deny (bans licenses sources) (push) Failing after 1s
Security audit / cargo-audit (push) Failing after 1s
Sync to CNB / sync (push) Failing after 1s
cargo-deny / cargo-deny (advisories) (push) Failing after 3s
Web Frontend / Deploy to Cloudflare (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 12:08:23 +08:00

90 lines
4.4 KiB
Gherkin

@long-running
# [LONG RUNNING] Opt-in acceptance workflows. Run with:
# cargo test -p codewhale-tui --bin codewhale-tui --features long-running-tests commands::groups::session::acceptance -- --test-threads=1
Feature: Session command workflows
Scenario: Save, export, and load preserve the active session
Given a CodeWhale session workspace with one user message
When the user saves the active session
And the user exports the active transcript
And the user clears the active conversation
And the user loads the saved session
Then the saved session file should contain the saved message
And the active session id should match the saved session file
And the exported markdown should contain the active transcript
And the active session should contain the saved message
And the restored token count should match the saved session
And CodeWhale should report that the session was loaded
Scenario: Fork keeps the original session resumable
Given a CodeWhale persisted session workspace with one user message
When the user forks the active session
Then the forked session should reference the original session
And the original session should still be loadable
And the active session should be the forked session
Scenario: New session cannot be forked before messages exist
Given a CodeWhale session workspace with one user message
When the user starts a new session
And the user tries to fork the active session
Then CodeWhale should reject the fork because there are no messages
And the active session should be empty
Scenario: Cleared session cannot be forked before messages exist
Given a CodeWhale session workspace with one user message
When the user clears the active conversation
And the user tries to fork the active session
Then CodeWhale should reject the fork because there are no messages
And the active session should be empty
Scenario: Fork followed by new keeps both saved sessions
Given a CodeWhale persisted session workspace with one user message
When the user forks the active session
And the user starts a new session
Then the original and forked sessions should remain loadable
And the active session should be a new empty session
Scenario: Fork followed by clear keeps both saved sessions
Given a CodeWhale persisted session workspace with one user message
When the user forks the active session
And the user clears the active conversation
Then the original and forked sessions should remain loadable
And the active session should be cleared without an active session id
Scenario: Rename updates the active saved session title
Given a CodeWhale persisted session workspace with one user message
When the user renames the active session to "Renamed whale path"
Then the active saved session title should be "Renamed whale path"
And the active session should be the original session
Scenario: Sessions list opens the saved session picker
Given a CodeWhale persisted session workspace with one user message
When the user lists saved sessions
Then the session picker should be open
And the original session should still be loadable
Scenario: Sessions prune removes only stale sessions
Given a CodeWhale session workspace with stale and fresh saved sessions
When the user prunes sessions older than 7 days
Then CodeWhale should report that one session was pruned
And the fresh session should still be loadable
And the stale session should no longer be loadable
Scenario: Context management commands emit actions without clearing the active session
Given a CodeWhale session workspace with one user message
When the user compacts context
Then CodeWhale should trigger context compaction
And the active session should contain the saved message
When the user purges context
Then CodeWhale should trigger context purge
And the active session should contain the saved message
When the user prepares a session relay focused on "handoff details"
Then CodeWhale should send a session relay instruction focused on "handoff details"
And the active session should contain the saved message
Scenario: Singular session command is not registered
Given a CodeWhale session workspace with one user message
When the user runs the singular session command
Then CodeWhale should reject the unknown session command
And the active session should contain the saved message