swarm / companies/starter/work/project/tests/fhir_validation_test.rs

raw file 804 bytes
use serde_json::json;
use crate::sync::fhir_validator::{validate_inbound_fhir, FhirValidationError};

#[test]
fn test_missing_resource_type_fails() {
    let payload = json!({
        "id": "123",
        "name": "John Doe"
    });
    let result = validate_inbound_fhir(&payload);
    assert!(result.is_err());
    if let Err(e) = result {
        assert_eq!(e.field, "resourceType");
    }
}

#[test]
fn test_valid_patient_passes() {
    let payload = json!({
        "resourceType": "Patient",
        "id": "p-001",
        "name": [{ "text": "Jane Doe" }]
    });
    let result = validate_inbound_fhir(&payload);
    assert!(result.is_ok());
}

#[test]
fn test_patient_missing_id_fails() {
    let payload = json!({
        "resourceType": "Patient"
    });
    let result = validate_inbound_fhir(&