@@ -243,6 +243,26 @@ fn test_try_make_response() {
243
243
) ;
244
244
requests. push ( request) ;
245
245
246
+ // query undeclared var metadata
247
+ let request = StacksHttpRequest :: new_getclaritymetadata (
248
+ addr. into ( ) ,
249
+ StacksAddress :: from_string ( "ST2DS4MSWSGJ3W9FBC6BVT0Y92S345HY8N3T6AV7R" ) . unwrap ( ) ,
250
+ "hello-world" . try_into ( ) . unwrap ( ) ,
251
+ "vm-metadata::6::non-existing-var" . to_string ( ) ,
252
+ TipRequest :: UseLatestAnchoredTip ,
253
+ ) ;
254
+ requests. push ( request) ;
255
+
256
+ // query invalid metadata key (wrong store type)
257
+ let request = StacksHttpRequest :: new_getclaritymetadata (
258
+ addr. into ( ) ,
259
+ StacksAddress :: from_string ( "ST2DS4MSWSGJ3W9FBC6BVT0Y92S345HY8N3T6AV7R" ) . unwrap ( ) ,
260
+ "hello-world" . try_into ( ) . unwrap ( ) ,
261
+ "vm-metadata::2::bar" . to_string ( ) ,
262
+ TipRequest :: UseLatestAnchoredTip ,
263
+ ) ;
264
+ requests. push ( request) ;
265
+
246
266
let mut responses = test_rpc ( function_name ! ( ) , requests) ;
247
267
248
268
// contract size metadata
@@ -270,4 +290,14 @@ fn test_try_make_response() {
270
290
value_type : TypeSignature :: IntType ,
271
291
} ;
272
292
assert_eq ! ( resp. data, expected. serialize( ) ) ;
293
+
294
+ // invalid metadata key
295
+ let response = responses. remove ( 0 ) ;
296
+ let ( preamble, body) = response. destruct ( ) ;
297
+ assert_eq ! ( preamble. status_code, 404 ) ;
298
+
299
+ // unknwnon data var
300
+ let response = responses. remove ( 0 ) ;
301
+ let ( preamble, body) = response. destruct ( ) ;
302
+ assert_eq ! ( preamble. status_code, 400 ) ;
273
303
}
0 commit comments