Skip to content

Commit 4088ce3

Browse files
authored
[NDR-294] Refactor search fhir E2E tests to be more robust (#891)
1 parent 2cc7d71 commit 4088ce3

File tree

1 file changed

+33
-10
lines changed

1 file changed

+33
-10
lines changed

lambdas/tests/e2e/api/fhir/test_search_patient_fhir_api.py

Lines changed: 33 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -43,24 +43,39 @@ def test_search_nonexistent_document_references_for_patient_details():
4343

4444

4545
def test_search_patient_details(test_data):
46-
create_and_store_pdm_record(test_data)
46+
created_record = create_and_store_pdm_record(test_data)
47+
expected_record_id = created_record["id"]
4748

4849
response = search_document_reference("9912003071")
4950
assert response.status_code == 200
5051

5152
bundle = response.json()
52-
assert "entry" in bundle
53+
entries = bundle.get("entry", [])
54+
assert entries
55+
56+
# Find the entry with the matching record_id
57+
matching_entry = next(
58+
(
59+
e
60+
for e in entries
61+
if e["resource"].get("id") == f"{PDM_SNOMED}~{expected_record_id}"
62+
),
63+
None,
64+
)
65+
assert matching_entry
5366

54-
attachment_url = bundle["entry"][0]["resource"]["content"][0]["attachment"]["url"]
67+
attachment_url = matching_entry["resource"]["content"][0]["attachment"]["url"]
5568
assert (
56-
f"https://{APIM_ENDPOINT}/national-document-repository/FHIR/R4/DocumentReference/{PDM_SNOMED}~"
69+
f"https://{APIM_ENDPOINT}/national-document-repository/FHIR/R4/DocumentReference/{PDM_SNOMED}~{expected_record_id}"
5770
in attachment_url
5871
)
5972

6073

6174
def test_multiple_cancelled_search_patient_details(test_data):
62-
create_and_store_pdm_record(test_data, doc_status="cancelled")
63-
create_and_store_pdm_record(test_data, doc_status="cancelled")
75+
record_ids = [
76+
create_and_store_pdm_record(test_data, doc_status="cancelled")["id"]
77+
for _ in range(2)
78+
]
6479

6580
response = search_document_reference("9912003071")
6681
assert response.status_code == 200
@@ -69,10 +84,18 @@ def test_multiple_cancelled_search_patient_details(test_data):
6984
entries = bundle.get("entry", [])
7085
assert len(entries) >= 2
7186

72-
# Assert that all entries have status "cancelled"
73-
for entry in entries:
74-
resource = entry.get("resource", {})
75-
assert resource.get("docStatus") == "cancelled"
87+
# Validate all created records exist and have status cancelled
88+
for record_id in record_ids:
89+
entry = next(
90+
(
91+
e
92+
for e in entries
93+
if e["resource"].get("id") == f"{PDM_SNOMED}~{record_id}"
94+
),
95+
None,
96+
)
97+
assert entry
98+
assert entry["resource"].get("docStatus") == "cancelled"
7699

77100

78101
@pytest.mark.parametrize(

0 commit comments

Comments
 (0)