47 lines
2.1 KiB
Python
47 lines
2.1 KiB
Python
from django.test import TestCase
|
|
from django.urls import reverse
|
|
from django.utils import timezone
|
|
|
|
from .models import SalesWorkspace
|
|
|
|
|
|
class SalesWorkspaceFlowTests(TestCase):
|
|
def test_home_page_loads(self):
|
|
response = self.client.get(reverse("home"))
|
|
self.assertEqual(response.status_code, 200)
|
|
self.assertContains(response, "Compact sales workspace")
|
|
|
|
def test_create_workspace_redirects_to_detail(self):
|
|
payload = {
|
|
"workspace-customer_name": "Northwind BV",
|
|
"workspace-project_name": "Warehouse fit-out",
|
|
"workspace-project_number": "PRJ-001",
|
|
"workspace-zipcode": "1000 AA",
|
|
"workspace-address": "Harbor Street 10",
|
|
"workspace-city": "Amsterdam",
|
|
"workspace-contact_name": "Lotte",
|
|
"workspace-contact_email": "lotte@example.com",
|
|
"workspace-contact_phone": "+31000000",
|
|
"workspace-opportunity_title": "Prepare first quotation",
|
|
"workspace-estimated_value": "9800",
|
|
"workspace-layout_template": "customer360",
|
|
"workspace-summary": "Test summary",
|
|
"workspace-next_step": "Schedule visit",
|
|
"workspace-next_meeting_at": (timezone.now() + timedelta(days=1)).strftime("%Y-%m-%dT%H:%M"),
|
|
}
|
|
response = self.client.post(reverse("home"), payload)
|
|
workspace = SalesWorkspace.objects.get(customer_name="Northwind BV")
|
|
self.assertRedirects(response, reverse("workspace_detail", args=[workspace.pk]))
|
|
self.assertEqual(workspace.stage, SalesWorkspace.Stage.NEW)
|
|
|
|
def test_workspace_detail_shows_panels(self):
|
|
workspace = SalesWorkspace.objects.create(
|
|
customer_name="Northwind BV",
|
|
opportunity_title="Prepare first quotation",
|
|
estimated_value=10000,
|
|
)
|
|
response = self.client.get(reverse("workspace_detail", args=[workspace.pk]))
|
|
self.assertEqual(response.status_code, 200)
|
|
self.assertContains(response, "Quotations")
|
|
self.assertContains(response, workspace.customer_name)
|