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/')
|
response = self.client.post(f'/api/onboarding-session/{self.session.uuid}/complete/')
|
||||||
self.assertEqual(response.status_code, HTTP_400_BAD_REQUEST)
|
self.assertEqual(response.status_code, HTTP_400_BAD_REQUEST)
|
||||||
self.assertIn('error', response.data)
|
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