Skip to content

Commit f9d8b64

Browse files
committed
[NDR-294] Refactor search fhir E2E tests to be more robust
1 parent 3790472 commit f9d8b64

File tree

1 file changed

+32
-9
lines changed

1 file changed

+32
-9
lines changed

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

Lines changed: 32 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -31,24 +31,39 @@ def search_document_reference(nhs_number, client_cert_path=None, client_key_path
3131

3232

3333
def test_search_patient_details(test_data):
34-
create_and_store_pdm_record(test_data)
34+
created_record = create_and_store_pdm_record(test_data)
35+
expected_record_id = created_record["id"]
3536

3637
response = search_document_reference("9912003071")
3738
assert response.status_code == 200
3839

3940
bundle = response.json()
40-
assert "entry" in bundle
41+
entries = bundle.get("entry", [])
42+
assert entries
43+
44+
# Find the entry with the matching record_id
45+
matching_entry = next(
46+
(
47+
e
48+
for e in entries
49+
if e["resource"].get("id") == f"{PDM_SNOMED}~{expected_record_id}"
50+
),
51+
None,
52+
)
53+
assert matching_entry
4154

42-
attachment_url = bundle["entry"][0]["resource"]["content"][0]["attachment"]["url"]
55+
attachment_url = matching_entry["resource"]["content"][0]["attachment"]["url"]
4356
assert (
4457
f"https://{APIM_ENDPOINT}/national-document-repository/FHIR/R4/DocumentReference/{PDM_SNOMED}~"
4558
in attachment_url
4659
)
4760

4861

4962
def test_multiple_cancelled_search_patient_details(test_data):
50-
create_and_store_pdm_record(test_data, doc_status="cancelled")
51-
create_and_store_pdm_record(test_data, doc_status="cancelled")
63+
record_ids = [
64+
create_and_store_pdm_record(test_data, doc_status="cancelled")["id"]
65+
for _ in range(2)
66+
]
5267

5368
response = search_document_reference("9912003071")
5469
assert response.status_code == 200
@@ -57,10 +72,18 @@ def test_multiple_cancelled_search_patient_details(test_data):
5772
entries = bundle.get("entry", [])
5873
assert len(entries) >= 2
5974

60-
# Assert that all entries have status "cancelled"
61-
for entry in entries:
62-
resource = entry.get("resource", {})
63-
assert resource.get("docStatus") == "cancelled"
75+
# Validate all created records exist and have status cancelled
76+
for record_id in record_ids:
77+
entry = next(
78+
(
79+
e
80+
for e in entries
81+
if e["resource"].get("id") == f"{PDM_SNOMED}~{record_id}"
82+
),
83+
None,
84+
)
85+
assert entry
86+
assert entry["resource"].get("docStatus") == "cancelled"
6487

6588

6689
@pytest.mark.parametrize(

0 commit comments

Comments
 (0)