38 lines
1.3 KiB
Python
38 lines
1.3 KiB
Python
from django.test import TestCase
|
|
from django.urls import reverse
|
|
|
|
from .models import Ticket
|
|
|
|
|
|
class TicketWorkflowTests(TestCase):
|
|
def test_submit_ticket_creates_record_and_redirects_to_confirmation(self):
|
|
response = self.client.post(
|
|
reverse("ticket_create"),
|
|
{
|
|
"requester_name": "Alex Morgan",
|
|
"requester_email": "alex@example.com",
|
|
"category": Ticket.Category.TECHNICAL,
|
|
"priority": Ticket.Priority.HIGH,
|
|
"subject": "Cannot access dashboard",
|
|
"description": "The dashboard returns an error after login.",
|
|
},
|
|
)
|
|
|
|
ticket = Ticket.objects.get()
|
|
self.assertRedirects(response, reverse("ticket_success", kwargs={"public_id": ticket.public_id}))
|
|
self.assertEqual(ticket.status, Ticket.Status.NEW)
|
|
|
|
def test_ticket_list_search_finds_requester(self):
|
|
Ticket.objects.create(
|
|
requester_name="Jamie",
|
|
requester_email="jamie@example.com",
|
|
category=Ticket.Category.ACCESS,
|
|
priority=Ticket.Priority.NORMAL,
|
|
subject="VPN access",
|
|
description="Please enable VPN.",
|
|
)
|
|
|
|
response = self.client.get(reverse("ticket_list"), {"q": "Jamie"})
|
|
|
|
self.assertContains(response, "VPN access")
|