@@ -100,6 +100,7 @@ async fn summary_new_crates() {
100100 json. most_downloaded[ 0 ] . default_version,
101101 Some ( "0.2.0" . into( ) )
102102 ) ;
103+ assert_eq ! ( json. most_downloaded[ 0 ] . yanked, Some ( false ) ) ;
103104 assert_eq ! ( json. most_downloaded[ 0 ] . downloads, 5000 ) ;
104105 assert_eq ! ( json. most_downloaded[ 0 ] . recent_downloads, Some ( 50 ) ) ;
105106 assert_eq ! (
@@ -110,23 +111,27 @@ async fn summary_new_crates() {
110111 json. most_recently_downloaded[ 0 ] . default_version,
111112 Some ( "0.2.0" . into( ) )
112113 ) ;
114+ assert_eq ! ( json. most_recently_downloaded[ 0 ] . yanked, Some ( false ) ) ;
113115 assert_eq ! ( json. most_recently_downloaded[ 0 ] . recent_downloads, Some ( 50 ) ) ;
114116 assert_eq ! ( json. popular_keywords[ 0 ] . keyword, "popular" ) ;
115117 assert_eq ! ( json. popular_categories[ 0 ] . category, "Category 1" ) ;
116118 assert_eq ! ( json. just_updated. len( ) , 2 ) ;
117119
118120 assert_eq ! ( json. just_updated[ 0 ] . name, "just_updated_patch" ) ;
119121 assert_eq ! ( json. just_updated[ 0 ] . default_version, Some ( "0.2.0" . into( ) ) ) ;
122+ assert_eq ! ( json. just_updated[ 0 ] . yanked, Some ( false ) ) ;
120123 assert_eq ! ( json. just_updated[ 0 ] . max_version, "0.2.0" ) ;
121124 assert_eq ! ( json. just_updated[ 0 ] . newest_version, "0.1.1" ) ;
122125
123126 assert_eq ! ( json. just_updated[ 1 ] . name, "just_updated" ) ;
124127 assert_eq ! ( json. just_updated[ 1 ] . default_version, Some ( "0.1.2" . into( ) ) ) ;
128+ assert_eq ! ( json. just_updated[ 1 ] . yanked, Some ( false ) ) ;
125129 assert_eq ! ( json. just_updated[ 1 ] . max_version, "0.1.2" ) ;
126130 assert_eq ! ( json. just_updated[ 1 ] . newest_version, "0.1.2" ) ;
127131
128132 assert_eq ! ( json. new_crates[ 0 ] . name, "with_downloads" ) ;
129133 assert_eq ! ( json. new_crates[ 0 ] . default_version, Some ( "0.3.0" . into( ) ) ) ;
134+ assert_eq ! ( json. new_crates[ 0 ] . yanked, Some ( false ) ) ;
130135 assert_eq ! ( json. new_crates. len( ) , 5 ) ;
131136}
132137
@@ -172,6 +177,7 @@ async fn excluded_crate_id() {
172177 json. most_downloaded[ 0 ] . default_version,
173178 Some ( "0.1.0" . into( ) )
174179 ) ;
180+ assert_eq ! ( json. most_downloaded[ 0 ] . yanked, Some ( false ) ) ;
175181 assert_eq ! ( json. most_downloaded[ 0 ] . downloads, 20 ) ;
176182
177183 assert_eq ! ( json. most_recently_downloaded. len( ) , 1 ) ;
@@ -180,5 +186,61 @@ async fn excluded_crate_id() {
180186 json. most_recently_downloaded[ 0 ] . default_version,
181187 Some ( "0.1.0" . into( ) )
182188 ) ;
189+ assert_eq ! ( json. most_recently_downloaded[ 0 ] . yanked, Some ( false ) ) ;
190+ assert_eq ! ( json. most_recently_downloaded[ 0 ] . recent_downloads, Some ( 10 ) ) ;
191+ }
192+
193+ #[ tokio:: test( flavor = "multi_thread" ) ]
194+ async fn all_yanked ( ) {
195+ let ( app, anon, user) = TestApp :: init ( )
196+ . with_config ( |config| {
197+ config. excluded_crate_names = vec ! [
198+ "most_recent_downloads" . into( ) ,
199+ // make sure no error occurs with a crate name that doesn't exist and that the name
200+ // matches are exact, not substrings
201+ "downloads" . into( ) ,
202+ ] ;
203+ } )
204+ . with_user ( ) ;
205+
206+ let mut conn = app. db_conn ( ) ;
207+ let user = user. as_model ( ) ;
208+
209+ CrateBuilder :: new ( "some_downloads" , user. id )
210+ . version ( VersionBuilder :: new ( "0.1.0" ) . yanked ( true ) )
211+ . version ( VersionBuilder :: new ( "0.2.0" ) . yanked ( true ) )
212+ . description ( "description" )
213+ . keyword ( "popular" )
214+ . category ( "cat1" )
215+ . downloads ( 20 )
216+ . recent_downloads ( 10 )
217+ . expect_build ( & mut conn) ;
218+
219+ CrateBuilder :: new ( "most_recent_downloads" , user. id )
220+ . version ( VersionBuilder :: new ( "0.2.0" ) )
221+ . keyword ( "popular" )
222+ . category ( "cat1" )
223+ . downloads ( 5000 )
224+ . recent_downloads ( 50 )
225+ . expect_build ( & mut conn) ;
226+
227+ let json: SummaryResponse = anon. get ( "/api/v1/summary" ) . await . good ( ) ;
228+
229+ assert_eq ! ( json. most_downloaded. len( ) , 1 ) ;
230+ assert_eq ! ( json. most_downloaded[ 0 ] . name, "some_downloads" ) ;
231+ assert_eq ! (
232+ json. most_downloaded[ 0 ] . default_version,
233+ Some ( "0.2.0" . into( ) )
234+ ) ;
235+ assert_eq ! ( json. most_downloaded[ 0 ] . yanked, Some ( true ) ) ;
236+ assert_eq ! ( json. most_downloaded[ 0 ] . downloads, 20 ) ;
237+
238+ assert_eq ! ( json. most_recently_downloaded. len( ) , 1 ) ;
239+ assert_eq ! ( json. most_recently_downloaded[ 0 ] . name, "some_downloads" ) ;
240+ assert_eq ! (
241+ json. most_recently_downloaded[ 0 ] . default_version,
242+ Some ( "0.2.0" . into( ) )
243+ ) ;
244+ assert_eq ! ( json. most_recently_downloaded[ 0 ] . yanked, Some ( true ) ) ;
183245 assert_eq ! ( json. most_recently_downloaded[ 0 ] . recent_downloads, Some ( 10 ) ) ;
184246}
0 commit comments