Added tests for progress
This commit is contained in:
parent
f87e4a2dd1
commit
3b2d4674f6
1 changed files with 50 additions and 0 deletions
|
|
@ -635,3 +635,53 @@ class OnboardingApiTests(TestCase):
|
|||
response = self.client.post(f'/api/onboarding-session/{self.session.uuid}/complete/')
|
||||
self.assertEqual(response.status_code, HTTP_400_BAD_REQUEST)
|
||||
self.assertIn('error', response.data)
|
||||
|
||||
def test_onboarding_session_progress_overview_returns_user_flow_matrix(self):
|
||||
self.role.members.add(self.member)
|
||||
extra_flow = OnboardingFlow.objects.create(
|
||||
title='Second Flow',
|
||||
role=self.role,
|
||||
structure=[],
|
||||
is_active=True,
|
||||
)
|
||||
self.session.state = {'flow_uuid': str(self.flow.uuid), 'progress_percentage': 35}
|
||||
self.session.save(update_fields=['state', 'updated_at'])
|
||||
|
||||
self.client.force_authenticate(self.manager)
|
||||
response = self.client.get('/api/onboarding-session/progress-overview/')
|
||||
|
||||
self.assertEqual(response.status_code, HTTP_200_OK)
|
||||
rows = response.json()
|
||||
self.assertTrue(isinstance(rows, list))
|
||||
self.assertTrue(any(row.get('flow', {}).get('uuid') == str(self.flow.uuid) for row in rows))
|
||||
self.assertTrue(any(row.get('flow', {}).get('uuid') == str(extra_flow.uuid) for row in rows))
|
||||
first_flow_row = next(row for row in rows if row.get('flow', {}).get('uuid') == str(self.flow.uuid))
|
||||
self.assertEqual(first_flow_row.get('latest_status'), self.session.status)
|
||||
self.assertEqual(first_flow_row.get('progress'), 35)
|
||||
|
||||
def test_onboarding_session_list_filters_by_user_and_flow_for_manager(self):
|
||||
self.role.members.add(self.member, self.manager)
|
||||
self.session.state = {'flow_uuid': str(self.flow.uuid), 'progress_percentage': 50}
|
||||
self.session.save(update_fields=['state', 'updated_at'])
|
||||
|
||||
manager_session = OnboardingSession.objects.create(
|
||||
user=self.manager,
|
||||
role=self.role,
|
||||
state={'flow_uuid': str(self.flow.uuid), 'progress_percentage': 10},
|
||||
active_configs={},
|
||||
)
|
||||
|
||||
self.client.force_authenticate(self.manager)
|
||||
response = self.client.get(
|
||||
'/api/onboarding-session/',
|
||||
{
|
||||
'role_uuid': str(self.role.uuid),
|
||||
'user_uuid': str(self.member.uuid),
|
||||
'flow_uuid': str(self.flow.uuid),
|
||||
},
|
||||
)
|
||||
|
||||
self.assertEqual(response.status_code, HTTP_200_OK)
|
||||
uuids = {str(item.get('uuid')) for item in response.json()}
|
||||
self.assertIn(str(self.session.uuid), uuids)
|
||||
self.assertNotIn(str(manager_session.uuid), uuids)
|
||||
|
|
|
|||
Loading…
Reference in a new issue