Add issue workflow progress tracker
This commit is contained in:
@@ -1592,6 +1592,29 @@ class PortalWorkflowTests(TempDatabaseMixin, unittest.TestCase):
|
||||
self.assertEqual(workflow.get("request_status"), "approved")
|
||||
self.assertEqual(workflow.get("media_status"), "processing")
|
||||
|
||||
def test_issue_status_maps_to_public_workflow_progress(self) -> None:
|
||||
item = {
|
||||
"kind": "issue",
|
||||
"status": "blocked",
|
||||
"issue_type": "playback",
|
||||
"created_by_username": "tester",
|
||||
}
|
||||
serialized = portal_router._serialize_item(item, {"username": "tester", "role": "user"})
|
||||
workflow = (serialized.get("issue") or {}).get("workflow") or {}
|
||||
|
||||
self.assertEqual(workflow.get("current_step"), 4)
|
||||
self.assertEqual(workflow.get("stage"), "repair")
|
||||
self.assertEqual(workflow.get("state"), "attention")
|
||||
self.assertEqual(len(workflow.get("steps") or []), 6)
|
||||
self.assertEqual((workflow.get("steps") or [])[3].get("state"), "attention")
|
||||
|
||||
def test_resolved_issue_completes_the_public_workflow(self) -> None:
|
||||
workflow = portal_router._issue_workflow_payload("closed")
|
||||
|
||||
self.assertEqual(workflow.get("current_step"), 6)
|
||||
self.assertEqual(workflow.get("state"), "complete")
|
||||
self.assertTrue(all(step.get("state") == "complete" for step in workflow.get("steps") or []))
|
||||
|
||||
def test_invalid_pipeline_transition_is_rejected(self) -> None:
|
||||
with self.assertRaises(HTTPException) as context:
|
||||
portal_router._validate_pipeline_transition(
|
||||
|
||||
Reference in New Issue
Block a user