@@ -45,6 +45,53 @@ test_that("search with domain filter works", {
4545 }
4646})
4747
48+ test_that(" search with standard_concept filter works" , {
49+ skip_if_no_integration_key()
50+ client <- integration_client()
51+
52+ results <- client $ search $ basic(
53+ " diabetes" ,
54+ standard_concept = " S" ,
55+ page_size = 20
56+ )
57+
58+ concepts <- extract_data(results , " concepts" )
59+ expect_gt(length(concepts ), 0 )
60+
61+ # All results should be standard concepts
62+ for (concept in concepts ) {
63+ expect_equal(concept $ standard_concept , " S" )
64+ }
65+ })
66+
67+ test_that(" search with multiple filters and pagination works" , {
68+ skip_if_no_integration_key()
69+ client <- integration_client()
70+
71+ # This combination triggers the COUNT query with all parameters
72+ results <- client $ search $ basic(
73+ " diabetes" ,
74+ vocabulary_ids = " SNOMED" ,
75+ domain_ids = " Condition" ,
76+ standard_concept = " S" ,
77+ page_size = 10
78+ )
79+
80+ concepts <- extract_data(results , " concepts" )
81+ expect_gt(length(concepts ), 0 )
82+
83+ # Verify all filters applied correctly
84+ for (concept in concepts ) {
85+ expect_equal(concept $ vocabulary_id , " SNOMED" )
86+ expect_equal(concept $ domain_id , " Condition" )
87+ expect_equal(concept $ standard_concept , " S" )
88+ }
89+
90+ # Verify pagination metadata exists (proves COUNT query worked)
91+ expect_true(! is.null(results $ meta ))
92+ expect_true(! is.null(results $ meta $ total_items ))
93+ })
94+
4895test_that(" autocomplete works" , {
4996 skip_if_no_integration_key()
5097 client <- integration_client()
0 commit comments