1+ use crate :: insta:: rfc3339_redaction;
12use crate :: { builders:: CrateBuilder , RequestHelper , TestApp } ;
23use cargo_registry:: { models:: Keyword , views:: EncodableKeyword } ;
4+ use insta:: assert_json_snapshot;
5+ use serde_json:: Value ;
36
4- #[ derive( Deserialize ) ]
5- struct KeywordList {
6- keywords : Vec < EncodableKeyword > ,
7- meta : KeywordMeta ,
8- }
9- #[ derive( Deserialize ) ]
10- struct KeywordMeta {
11- total : i32 ,
12- }
137#[ derive( Deserialize ) ]
148struct GoodKeyword {
159 keyword : EncodableKeyword ,
@@ -19,18 +13,15 @@ struct GoodKeyword {
1913fn index ( ) {
2014 let url = "/api/v1/keywords" ;
2115 let ( app, anon) = TestApp :: init ( ) . empty ( ) ;
22- let json: KeywordList = anon. get ( url) . good ( ) ;
23- assert_eq ! ( json. keywords. len( ) , 0 ) ;
24- assert_eq ! ( json. meta. total, 0 ) ;
16+ let json: Value = anon. get ( url) . good ( ) ;
17+ assert_json_snapshot ! ( json) ;
2518
2619 app. db ( |conn| {
2720 Keyword :: find_or_create_all ( conn, & [ "foo" ] ) . unwrap ( ) ;
2821 } ) ;
2922
30- let json: KeywordList = anon. get ( url) . good ( ) ;
31- assert_eq ! ( json. keywords. len( ) , 1 ) ;
32- assert_eq ! ( json. meta. total, 1 ) ;
33- assert_eq ! ( json. keywords[ 0 ] . keyword. as_str( ) , "foo" ) ;
23+ let json: Value = anon. get ( url) . good ( ) ;
24+ assert_json_snapshot ! ( json, { ".**.created_at" => rfc3339_redaction( ) } ) ;
3425}
3526
3627#[ test]
@@ -42,8 +33,9 @@ fn show() {
4233 app. db ( |conn| {
4334 Keyword :: find_or_create_all ( conn, & [ "foo" ] ) . unwrap ( ) ;
4435 } ) ;
45- let json: GoodKeyword = anon. get ( url) . good ( ) ;
46- assert_eq ! ( json. keyword. keyword. as_str( ) , "foo" ) ;
36+
37+ let json: Value = anon. get ( url) . good ( ) ;
38+ assert_json_snapshot ! ( json, { ".**.created_at" => rfc3339_redaction( ) } ) ;
4739}
4840
4941#[ test]
@@ -55,8 +47,9 @@ fn uppercase() {
5547 app. db ( |conn| {
5648 Keyword :: find_or_create_all ( conn, & [ "UPPER" ] ) . unwrap ( ) ;
5749 } ) ;
58- let json: GoodKeyword = anon. get ( url) . good ( ) ;
59- assert_eq ! ( json. keyword. keyword. as_str( ) , "upper" ) ;
50+
51+ let json: Value = anon. get ( url) . good ( ) ;
52+ assert_json_snapshot ! ( json, { ".**.created_at" => rfc3339_redaction( ) } ) ;
6053}
6154
6255#[ test]
0 commit comments