@@ -564,6 +564,48 @@ mod api_tests {
564564 ) ;
565565 }
566566
567+ #[ test]
568+ fn test_getting_setting_multiple_types ( ) {
569+ let server = setup_testserver ( ) ;
570+ let client = rocket:: local:: Client :: new ( server) . expect ( "valid instance" ) ;
571+
572+ let timestamp = Utc :: now ( ) ;
573+
574+ // Test array
575+ let response_status = set_setting_request ( & client, "test_key_array" , json ! ( "[1,2,3]" ) ) ;
576+ assert_eq ! ( response_status, rocket:: http:: Status :: Created ) ;
577+
578+ let mut res = client. get ( "/api/0/settings/test_key_array" ) . dispatch ( ) ;
579+ assert_eq ! ( res. status( ) , rocket:: http:: Status :: Ok ) ;
580+ let deserialized: KeyValue = serde_json:: from_str ( & res. body_string ( ) . unwrap ( ) ) . unwrap ( ) ;
581+ _equal_and_timestamp_in_range (
582+ timestamp,
583+ deserialized,
584+ KeyValue :: new ( "settings.test_key_array" , "[1,2,3]" , Utc :: now ( ) ) ,
585+ ) ;
586+
587+ // Test dict
588+ let response_status = set_setting_request (
589+ & client,
590+ "test_key_dict" ,
591+ json ! ( "{key: 'value', another_key: 'another value'}" ) ,
592+ ) ;
593+ assert_eq ! ( response_status, rocket:: http:: Status :: Created ) ;
594+
595+ let mut res = client. get ( "/api/0/settings/test_key_dict" ) . dispatch ( ) ;
596+ assert_eq ! ( res. status( ) , rocket:: http:: Status :: Ok ) ;
597+ let deserialized: KeyValue = serde_json:: from_str ( & res. body_string ( ) . unwrap ( ) ) . unwrap ( ) ;
598+ _equal_and_timestamp_in_range (
599+ timestamp,
600+ deserialized,
601+ KeyValue :: new (
602+ "settings.test_key_dict" ,
603+ "{key: 'value', another_key: 'another value'}" ,
604+ Utc :: now ( ) ,
605+ ) ,
606+ ) ;
607+ }
608+
567609 #[ test]
568610 fn test_updating_setting ( ) {
569611 let server = setup_testserver ( ) ;
0 commit comments