feat: render real ticket event timeline
This commit is contained in:
@@ -127,3 +127,38 @@ def test_transition_ticket_requires_non_empty_remark(admin_client, db):
|
||||
)
|
||||
|
||||
assert response.status_code == 400
|
||||
|
||||
|
||||
def test_get_ticket_events_returns_real_timeline_with_operator(admin_client, db):
|
||||
user_model = get_user_model()
|
||||
operator = user_model.objects.get(username="admin")
|
||||
ticket = Ticket.objects.create(
|
||||
ticket_no="TK202607020200",
|
||||
title="A",
|
||||
description="A",
|
||||
status="in_progress",
|
||||
)
|
||||
TicketEvent.objects.create(
|
||||
ticket=ticket,
|
||||
event_type="created",
|
||||
to_value={"status": "pending"},
|
||||
operator=operator,
|
||||
)
|
||||
TicketEvent.objects.create(
|
||||
ticket=ticket,
|
||||
event_type="status_change",
|
||||
from_value={"status": "pending"},
|
||||
to_value={"status": "in_progress"},
|
||||
operator=operator,
|
||||
remark="开始排查认证链路",
|
||||
)
|
||||
|
||||
response = admin_client.get(f"/api/tickets/{ticket.id}/events")
|
||||
|
||||
assert response.status_code == 200
|
||||
payload = response.json()
|
||||
assert [event["event_type"] for event in payload] == ["created", "status_change"]
|
||||
assert payload[1]["from_value"] == {"status": "pending"}
|
||||
assert payload[1]["to_value"] == {"status": "in_progress"}
|
||||
assert payload[1]["remark"] == "开始排查认证链路"
|
||||
assert payload[1]["operator"]["display_name"] == "admin"
|
||||
|
||||
Reference in New Issue
Block a user