@@ -420,7 +420,7 @@ fn show() {
420
420
let user = user. as_model ( ) ;
421
421
422
422
let krate = app. db ( |conn| {
423
- CrateBuilder :: new ( "foo_show" , user. id )
423
+ let krate = CrateBuilder :: new ( "foo_show" , user. id )
424
424
. description ( "description" )
425
425
. documentation ( "https://example.com" )
426
426
. homepage ( "http://example.com" )
@@ -430,7 +430,18 @@ fn show() {
430
430
. keyword ( "kw1" )
431
431
. downloads ( 20 )
432
432
. recent_downloads ( 10 )
433
- . expect_build ( conn)
433
+ . expect_build ( conn) ;
434
+
435
+ // Make version 1.0.0 mimic a version published before we started recording who published
436
+ // versions
437
+ let none: Option < i32 > = None ;
438
+ update ( versions:: table)
439
+ . filter ( versions:: num. eq ( "1.0.0" ) )
440
+ . set ( versions:: published_by. eq ( none) )
441
+ . execute ( conn)
442
+ . unwrap ( ) ;
443
+
444
+ krate
434
445
} ) ;
435
446
436
447
let json = anon. show_crate ( "foo_show" ) ;
@@ -448,6 +459,7 @@ fn show() {
448
459
assert_eq ! ( json. versions[ 0 ] . id, versions[ 0 ] ) ;
449
460
assert_eq ! ( json. versions[ 0 ] . krate, json. krate. id) ;
450
461
assert_eq ! ( json. versions[ 0 ] . num, "1.0.0" ) ;
462
+ assert ! ( json. versions[ 0 ] . published_by. is_none( ) ) ;
451
463
let suffix = "/api/v1/crates/foo_show/1.0.0/download" ;
452
464
assert ! (
453
465
json. versions[ 0 ] . dl_path. ends_with( suffix) ,
@@ -459,6 +471,10 @@ fn show() {
459
471
460
472
assert_eq ! ( json. versions[ 1 ] . num, "0.5.1" ) ;
461
473
assert_eq ! ( json. versions[ 2 ] . num, "0.5.0" ) ;
474
+ assert_eq ! (
475
+ json. versions[ 1 ] . published_by. as_ref( ) . unwrap( ) . login,
476
+ user. gh_login
477
+ ) ;
462
478
}
463
479
464
480
#[ test]
@@ -489,6 +505,14 @@ fn versions() {
489
505
. version ( "1.0.0" )
490
506
. version ( "0.5.0" )
491
507
. expect_build ( conn) ;
508
+ // Make version 1.0.0 mimic a version published before we started recording who published
509
+ // versions
510
+ let none: Option < i32 > = None ;
511
+ update ( versions:: table)
512
+ . filter ( versions:: num. eq ( "1.0.0" ) )
513
+ . set ( versions:: published_by. eq ( none) )
514
+ . execute ( conn)
515
+ . unwrap ( ) ;
492
516
} ) ;
493
517
494
518
let json: VersionsList = anon. get ( "/api/v1/crates/foo_versions/versions" ) . good ( ) ;
@@ -497,6 +521,11 @@ fn versions() {
497
521
assert_eq ! ( json. versions[ 0 ] . num, "1.0.0" ) ;
498
522
assert_eq ! ( json. versions[ 1 ] . num, "0.5.1" ) ;
499
523
assert_eq ! ( json. versions[ 2 ] . num, "0.5.0" ) ;
524
+ assert ! ( json. versions[ 0 ] . published_by. is_none( ) ) ;
525
+ assert_eq ! (
526
+ json. versions[ 1 ] . published_by. as_ref( ) . unwrap( ) . login,
527
+ user. gh_login
528
+ ) ;
500
529
}
501
530
502
531
#[ test]
0 commit comments