39 lines
1.3 KiB
Gherkin
39 lines
1.3 KiB
Gherkin
Feature: /close command — terminate a session
|
|
|
|
Background:
|
|
Given user "user_abc123" is sending commands
|
|
|
|
Scenario: No sessions returns error
|
|
When user sends "/close"
|
|
Then reply contains "No sessions to close"
|
|
|
|
Scenario: Close active session by default
|
|
Given user has session "sess01" in "/tmp/proj1"
|
|
And active session is "sess01"
|
|
When user sends "/close"
|
|
Then reply contains "Closed session"
|
|
And session manager has 0 sessions for user "user_abc123"
|
|
|
|
Scenario: Close session by number
|
|
Given user has session "sess01" in "/tmp/proj1"
|
|
And user has session "sess02" in "/tmp/proj2"
|
|
When user sends "/close 1"
|
|
Then reply contains "Closed session"
|
|
And session manager has 1 session for user "user_abc123"
|
|
|
|
Scenario: Invalid number returns error
|
|
Given user has session "sess01" in "/tmp/proj1"
|
|
When user sends "/close 9"
|
|
Then reply contains "Invalid session number"
|
|
|
|
Scenario: Cannot close another user's session
|
|
Given session "sess01" in "/tmp/proj1" belongs to user "other_user"
|
|
When user sends "/close sess01"
|
|
Then reply contains "belongs to another user"
|
|
|
|
Scenario: Closing active session clears active conv
|
|
Given user has session "sess01" in "/tmp/proj1"
|
|
And active session is "sess01"
|
|
When user sends "/close"
|
|
Then active session for user "user_abc123" is None
|