@@ -160,3 +160,39 @@ 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 (list (name = " time_value" , class = " date" ), list (name = " value" , class = " double" ))
170+ expected <- list (
171+ endpoint = endpoint ,
172+ params = params ,
173+ base_url = " https://api.delphi.cmu.edu/epidata/" ,
174+ meta = meta ,
175+ only_supports_classic = FALSE
176+ )
177+ class(expected ) = " epidata_call"
178+
179+ expect_identical(create_epidata_call(endpoint , params , meta = meta ), expected )
180+
181+ expected $ meta <- list ()
182+ expect_identical(create_epidata_call(endpoint , params , meta = NULL ), expected )
183+ expect_identical(create_epidata_call(endpoint , params , meta = list ()), expected )
184+ })
185+
186+
187+ test_that(" create_epidata_call fails when meta arg contains duplicates" , {
188+ endpoint <- " endpoint"
189+ params <- list ()
190+
191+ # Duplicate names
192+ meta <- list (list (name = " time_value" , class = " date" ), list (name = " time_value" , class = " int" ))
193+ expect_error(create_epidata_call(endpoint , params , meta = meta ), class = " epidatr__duplicate_meta_names" )
194+
195+ # Duplicate entries
196+ meta <- list (list (name = " time_value" , class = " date" ), list (name = " time_value" , class = " date" ))
197+ expect_error(create_epidata_call(endpoint , params , meta = meta ), class = " epidatr__duplicate_meta_entries" )
198+ })
0 commit comments