@@ -160,3 +160,53 @@ test_that("classic only fetch", {
160160 # making sure that fetch_tbl and throws the expected error on classic only
161161 expect_error(epidata_call %> % fetch_tbl(), class = " only_supports_classic_format" )
162162})
163+
164+ test_that(" create_epidata_call basic behavior" , {
165+ endpoint <- " endpoint"
166+ params <- list ()
167+
168+ # Success
169+ meta <- list (
170+ create_epidata_field_info(" time_value" , " date" ),
171+ create_epidata_field_info(" value" , " float" )
172+ )
173+ expected <- list (
174+ endpoint = endpoint ,
175+ params = params ,
176+ base_url = " https://api.delphi.cmu.edu/epidata/" ,
177+ meta = meta ,
178+ only_supports_classic = FALSE
179+ )
180+ class(expected ) <- " epidata_call"
181+ expect_identical(create_epidata_call(endpoint , params , meta = meta ), expected )
182+
183+ expected $ meta <- list ()
184+ expect_identical(create_epidata_call(endpoint , params , meta = NULL ), expected )
185+ expect_identical(create_epidata_call(endpoint , params , meta = list ()), expected )
186+ })
187+
188+
189+ test_that(" create_epidata_call fails when meta arg contains duplicates" , {
190+ endpoint <- " endpoint"
191+ params <- list ()
192+
193+ # Duplicate names
194+ meta <- list (
195+ create_epidata_field_info(" time_value" , " date" ),
196+ create_epidata_field_info(" time_value" , " int" )
197+ )
198+ expect_error(
199+ create_epidata_call(endpoint , params , meta = meta ),
200+ class = " epidatr__duplicate_meta_names"
201+ )
202+
203+ # Duplicate entries
204+ meta <- list (
205+ create_epidata_field_info(" time_value" , " date" ),
206+ create_epidata_field_info(" time_value" , " date" )
207+ )
208+ expect_error(
209+ create_epidata_call(endpoint , params , meta = meta ),
210+ class = " epidatr__duplicate_meta_entries"
211+ )
212+ })
0 commit comments