feat: close sessions from history page with inline popover
Add ability to close active sessions directly from the Session History page via an inline popover with outcome selection and optional notes. Adds two new outcomes: cancelled and resolved_externally. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -163,6 +163,53 @@ class TestSessions:
|
||||
assert data["outcome"] == "resolved"
|
||||
assert data["outcome_notes"] == "Issue fixed after restarting service"
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_complete_session_with_cancelled_outcome(
|
||||
self, client: AsyncClient, auth_headers: dict, test_tree: dict
|
||||
):
|
||||
"""Test completing a session with 'cancelled' outcome."""
|
||||
create_response = await client.post(
|
||||
"/api/v1/sessions",
|
||||
json={"tree_id": test_tree["id"]},
|
||||
headers=auth_headers
|
||||
)
|
||||
session_id = create_response.json()["id"]
|
||||
|
||||
response = await client.post(
|
||||
f"/api/v1/sessions/{session_id}/complete",
|
||||
json={"outcome": "cancelled", "outcome_notes": "Ticket withdrawn by client"},
|
||||
headers=auth_headers
|
||||
)
|
||||
|
||||
assert response.status_code == 200
|
||||
data = response.json()
|
||||
assert data["outcome"] == "cancelled"
|
||||
assert data["outcome_notes"] == "Ticket withdrawn by client"
|
||||
assert data["completed_at"] is not None
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_complete_session_with_resolved_externally_outcome(
|
||||
self, client: AsyncClient, auth_headers: dict, test_tree: dict
|
||||
):
|
||||
"""Test completing a session with 'resolved_externally' outcome."""
|
||||
create_response = await client.post(
|
||||
"/api/v1/sessions",
|
||||
json={"tree_id": test_tree["id"]},
|
||||
headers=auth_headers
|
||||
)
|
||||
session_id = create_response.json()["id"]
|
||||
|
||||
response = await client.post(
|
||||
f"/api/v1/sessions/{session_id}/complete",
|
||||
json={"outcome": "resolved_externally"},
|
||||
headers=auth_headers
|
||||
)
|
||||
|
||||
assert response.status_code == 200
|
||||
data = response.json()
|
||||
assert data["outcome"] == "resolved_externally"
|
||||
assert data["completed_at"] is not None
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_complete_session_requires_outcome(
|
||||
self, client: AsyncClient, auth_headers: dict, test_tree: dict
|
||||
|
||||
Reference in New Issue
Block a user