@@ -160,3 +160,53 @@ test_that("classic only fetch", {
160
160
# making sure that fetch_tbl and throws the expected error on classic only
161
161
expect_error(epidata_call %> % fetch_tbl(), class = " only_supports_classic_format" )
162
162
})
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