diff --git a/apps/onboarding/tests/test_api.py b/apps/onboarding/tests/test_api.py index a6f80ef..bf67114 100644 --- a/apps/onboarding/tests/test_api.py +++ b/apps/onboarding/tests/test_api.py @@ -597,23 +597,38 @@ class OnboardingApiTests(TestCase): self.assertEqual(response.status_code, HTTP_400_BAD_REQUEST) self.assertIn('structure', response.data) - def test_onboarding_flow_destroy_removes_sessions_for_role(self): + def test_onboarding_flow_destroy_removes_sessions_for_flow(self): self.client.force_authenticate(self.manager) flow_to_delete = OnboardingFlow.objects.create( title='Delete Me and Sessions', role=self.role, structure=[], ) - session = OnboardingSession.objects.create( + + session_for_deleted_flow = OnboardingSession.objects.create( user=self.member, role=self.role, + flow=flow_to_delete, state={'flow_uuid': str(flow_to_delete.uuid)}, active_configs={}, ) + untouched_flow = OnboardingFlow.objects.create( + title='Keep Me and Sessions', + role=self.role, + structure=[], + ) + session_for_other_flow = OnboardingSession.objects.create( + user=self.member, + role=self.role, + flow=untouched_flow, + state={'flow_uuid': str(untouched_flow.uuid)}, + active_configs={}, + ) response = self.client.delete(f'/api/onboarding-flow/{flow_to_delete.uuid}/') self.assertEqual(response.status_code, HTTP_204_NO_CONTENT) - self.assertFalse(OnboardingSession.objects.filter(uuid=session.uuid).exists()) + self.assertFalse(OnboardingSession.objects.filter(uuid=session_for_deleted_flow.uuid).exists()) + self.assertTrue(OnboardingSession.objects.filter(uuid=session_for_other_flow.uuid).exists()) def test_onboarding_flow_start_session_updates_flow_uuid_on_existing_session(self): self.role.members.add(self.member) diff --git a/apps/onboarding/tests/test_consumers.py b/apps/onboarding/tests/test_consumers.py index 769ad3b..60c3ef0 100644 --- a/apps/onboarding/tests/test_consumers.py +++ b/apps/onboarding/tests/test_consumers.py @@ -83,6 +83,28 @@ class OnboardingConsumerConfigSelectionTests(TestCase): fallback = self.consumer._build_fallback_quiz_fields(['Topic A', 'Topic B']) self.assertEqual(len(fallback), 8) - self.assertTrue(all(item.get('field_type') == 'select' for item in fallback)) - self.assertTrue(all(len(item.get('options', [])) >= 4 for item in fallback)) - self.assertTrue(all(item.get('validation', {}).get('correct_option') in item.get('options', []) for item in fallback)) + + select_items = [item for item in fallback if item.get('field_type') == 'select'] + short_answer_items = [ + item + for item in fallback + if item.get('field_type') in ('text', 'textarea') + ] + + self.assertGreaterEqual(len(select_items), 2) + self.assertGreaterEqual(len(short_answer_items), 2) + + self.assertTrue(all(len(item.get('options', [])) >= 4 for item in select_items)) + self.assertTrue( + all( + item.get('validation', {}).get('correct_option') in item.get('options', []) + for item in select_items + ) + ) + self.assertTrue( + all( + isinstance(item.get('validation', {}).get('accepted_answers', []), list) + and len(item.get('validation', {}).get('accepted_answers', [])) > 0 + for item in short_answer_items + ) + )