@@ -504,53 +504,87 @@ impl ToJson for MetaData {
504
504
505
505
#[ cfg( test) ]
506
506
mod test {
507
- extern crate env_logger;
507
+ use crate :: test:: * ;
508
+ use web:: { match_version, MatchVersion } ;
509
+
510
+ fn release ( version : & str , db : & TestDatabase ) -> i32 {
511
+ db. fake_release ( ) . name ( "foo" ) . version ( version) . create ( ) . unwrap ( )
512
+ }
513
+ fn version ( v : Option < & str > , db : & TestDatabase ) -> MatchVersion {
514
+ match_version ( & db. conn ( ) , "foo" , v)
515
+ }
508
516
509
517
#[ test]
510
518
fn test_index_returns_success ( ) {
511
- crate :: test :: wrapper ( |env| {
519
+ wrapper ( |env| {
512
520
let web = env. frontend ( ) ;
513
521
assert ! ( web. get( "/" ) . send( ) ?. status( ) . is_success( ) ) ;
514
522
Ok ( ( ) )
515
523
} ) ;
516
524
}
517
525
518
526
#[ test]
519
- fn test_match_version ( ) {
520
- use web:: { match_version, MatchVersion } ;
521
-
522
- crate :: test:: wrapper ( |env| {
527
+ // https://github.com/rust-lang/docs.rs/issues/223
528
+ fn prereleases_are_not_considered_for_semver ( ) {
529
+ wrapper ( |env| {
523
530
let db = env. db ( ) ;
524
- let version = |v| match_version ( & db . conn ( ) , "foo" , v ) ;
525
- let release = |v| db . fake_release ( ) . name ( "foo" ) . version ( v ) . create ( ) . unwrap ( ) ;
531
+ let version = |v| version ( v , db ) ;
532
+ let release = |v| release ( v , db ) ;
526
533
527
534
release ( "0.3.1-pre" ) ;
528
535
assert_eq ! ( version( Some ( "*" ) ) , MatchVersion :: Semver ( "0.3.1-pre" . into( ) ) ) ;
529
536
530
537
release ( "0.3.1-alpha" ) ;
531
538
assert_eq ! ( version( Some ( "0.3.1-alpha" ) ) , MatchVersion :: Exact ( "0.3.1-alpha" . into( ) ) ) ;
532
539
533
- let release_id = release ( "0.3.0" ) ;
540
+ release ( "0.3.0" ) ;
534
541
let three = MatchVersion :: Semver ( "0.3.0" . into ( ) ) ;
535
- assert_eq ! ( version( Some ( "*" ) ) , three) ;
536
- // same thing but make sure None behaves like we think it does
537
542
assert_eq ! ( version( None ) , three) ;
543
+ // same thing but with "*"
544
+ assert_eq ! ( version( Some ( "*" ) ) , three) ;
538
545
// make sure exact matches still work
539
546
assert_eq ! ( version( Some ( "0.3.0" ) ) , MatchVersion :: Exact ( "0.3.0" . into( ) ) ) ;
540
547
541
- // https://github.com/rust-lang/docs.rs/issues/395
548
+ Ok ( ( ) )
549
+ } ) ;
550
+ }
551
+
552
+ #[ test]
553
+ // https://github.com/rust-lang/docs.rs/issues/221
554
+ fn yanked_crates_are_not_considered ( ) {
555
+ wrapper ( |env| {
556
+ let db = env. db ( ) ;
557
+
558
+ let release_id = release ( "0.3.0" , db) ;
542
559
let query = "UPDATE releases SET yanked = true WHERE id = $1 AND version = '0.3.0'" ;
543
560
db. conn ( ) . query ( query, & [ & release_id] ) . unwrap ( ) ;
544
- release ( "0.1.0+4.1" ) ;
545
- assert_eq ! ( version( Some ( "0.1.0+4.1" ) ) , MatchVersion :: Exact ( "0.1.0+4.1" . into( ) ) ) ;
546
- assert_eq ! ( version( None ) , MatchVersion :: Semver ( "0.1.0+4.1" . into( ) ) ) ;
547
- release ( "0.1.1" ) ;
548
- assert_eq ! ( version( None ) , MatchVersion :: Semver ( "0.1.1" . into( ) ) ) ;
549
- release ( "0.5.1+zstd.1.4.4" ) ;
550
- assert_eq ! ( version( None ) , MatchVersion :: Semver ( "0.5.1+zstd.1.4.4" . into( ) ) ) ;
551
- assert_eq ! ( version( Some ( "0.5.1+zstd.1.4.4" ) ) , MatchVersion :: Exact ( "0.5.1+zstd.1.4.4" . into( ) ) ) ;
561
+ assert_eq ! ( version( None , db) , MatchVersion :: None ) ;
562
+ assert_eq ! ( version( Some ( "0.3" ) , db) , MatchVersion :: None ) ;
563
+
564
+ release ( "0.1.0+4.1" , db) ;
565
+ assert_eq ! ( version( Some ( "0.1.0+4.1" ) , db) , MatchVersion :: Exact ( "0.1.0+4.1" . into( ) ) ) ;
566
+ assert_eq ! ( version( None , db) , MatchVersion :: Semver ( "0.1.0+4.1" . into( ) ) ) ;
552
567
553
568
Ok ( ( ) )
554
- } )
569
+ } ) ;
570
+ }
571
+
572
+ #[ test]
573
+ // vaguely related to https://github.com/rust-lang/docs.rs/issues/395
574
+ fn metadata_has_no_effect ( ) {
575
+ wrapper ( |env| {
576
+ let db = env. db ( ) ;
577
+
578
+ release ( "0.1.0+4.1" , db) ;
579
+ release ( "0.1.1" , db) ;
580
+ assert_eq ! ( version( None , db) , MatchVersion :: Semver ( "0.1.1" . into( ) ) ) ;
581
+
582
+ release ( "0.5.1+zstd.1.4.4" , db) ;
583
+ assert_eq ! ( version( None , db) , MatchVersion :: Semver ( "0.5.1+zstd.1.4.4" . into( ) ) ) ;
584
+ assert_eq ! ( version( Some ( "0.5" ) , db) , MatchVersion :: Semver ( "0.5.1+zstd.1.4.4" . into( ) ) ) ;
585
+ assert_eq ! ( version( Some ( "0.5.1+zstd.1.4.4" ) , db) , MatchVersion :: Exact ( "0.5.1+zstd.1.4.4" . into( ) ) ) ;
586
+
587
+ Ok ( ( ) )
588
+ } ) ;
555
589
}
556
590
}
0 commit comments