from django.db import IntegrityError from django.test import TestCase from access_core.intake.models import ( IntakeRecord, ParticipationReadiness, RawIngestionRecord, SafetyScreening, ) class IntakeRecordTest(TestCase): def test_create_intake_record(self): record = IntakeRecord.objects.create( external_form_id="healthie-form-001", first_name="Jane", last_name="Doe", dob="1960-01-15", sex="female", is_synthetic=True, status="prospective", ) self.assertEqual(record.status, "prospective") self.assertTrue(record.is_synthetic) self.assertIsNotNone(record.id) def test_status_transition(self): record = IntakeRecord.objects.create( external_form_id="healthie-form-002", first_name="John", last_name="Smith", dob="1955-06-20", sex="male", is_synthetic=True, ) record.status = "intake_in_progress" record.save() self.assertEqual(record.status, "intake_in_progress") class RawIngestionRecordTest(TestCase): def test_create_raw_ingestion(self): record = RawIngestionRecord.objects.create( source_system="healthie", source_record_id="wh-synth-001", raw_payload={"test_field": "synthetic_value"}, processing_status="received", ) self.assertEqual(record.processing_status, "received") self.assertEqual(record.source_system, "healthie") def test_unique_source_record_id(self): RawIngestionRecord.objects.create( source_system="healthie", source_record_id="wh-synth-002", raw_payload={}, ) with self.assertRaises(IntegrityError): RawIngestionRecord.objects.create( source_system="healthie", source_record_id="wh-synth-002", raw_payload={}, ) class SafetyScreeningTest(TestCase): def test_create_safety_screening(self): intake = IntakeRecord.objects.create( external_form_id="healthie-form-003", first_name="Alice", last_name="Jones", dob="1970-03-10", sex="female", is_synthetic=True, ) screening = SafetyScreening.objects.create( intake_record=intake, safety_stop_applies=False, screening_status="passed", ) self.assertEqual(screening.screening_status, "passed") self.assertFalse(screening.safety_stop_applies) class ParticipationReadinessTest(TestCase): def test_create_readiness(self): intake = IntakeRecord.objects.create( external_form_id="healthie-form-004", first_name="Bob", last_name="Brown", dob="1965-08-22", sex="male", is_synthetic=True, ) readiness = ParticipationReadiness.objects.create( intake_record=intake, acknowledged=True, status="acknowledged", ) self.assertTrue(readiness.acknowledged)