"""Tests for the Work Orders API endpoints.""" def test_work_orders_page_returns_200(client): response = client.get("/work-orders/queue") assert response.status_code == 200 assert "WORK ORDERS" in response.text def test_submit_work_order(client): """POST /work-orders/submit creates a work order.""" response = client.post( "/work-orders/submit", data={ "title": "Fix the dashboard", "description": "Details here", "priority": "high", "category": "bug", "submitter": "dashboard", "related_files": "src/app.py", }, ) assert response.status_code == 200 def test_pending_partial_returns_200(client): """GET /work-orders/queue/pending returns HTML.""" response = client.get("/work-orders/queue/pending") assert response.status_code == 200 def test_active_partial_returns_200(client): """GET /work-orders/queue/active returns HTML.""" response = client.get("/work-orders/queue/active") assert response.status_code == 200 def test_submit_and_list_roundtrip(client): """Submitting a work order makes it appear in the pending section.""" client.post( "/work-orders/submit", data={ "title": "Roundtrip WO", "priority": "medium", "category": "suggestion", "submitter": "test", }, ) response = client.get("/work-orders/queue/pending") assert "Roundtrip WO" in response.text def test_approve_work_order(client): """POST /work-orders/{id}/approve changes status.""" # Submit one first client.post( "/work-orders/submit", data={ "title": "To approve", "priority": "medium", "category": "suggestion", "submitter": "test", }, ) # Get ID from pending pending = client.get("/work-orders/queue/pending") import re match = re.search(r'id="wo-([^"]+)"', pending.text) if match: wo_id = match.group(1) response = client.post(f"/work-orders/{wo_id}/approve") assert response.status_code == 200 assert "APPROVED" in response.text.upper() or "EXECUTE" in response.text.upper()