@@ -20,6 +20,8 @@ struct BadgeRef {
20
20
codecov_attributes : HashMap < String , String > ,
21
21
coveralls : Badge ,
22
22
coveralls_attributes : HashMap < String , String > ,
23
+ circle_ci : Badge ,
24
+ circle_ci_attributes : HashMap < String , String > ,
23
25
}
24
26
25
27
fn set_up ( ) -> ( Arc < App > , Crate , BadgeRef ) {
@@ -96,6 +98,14 @@ fn set_up() -> (Arc<App>, Crate, BadgeRef) {
96
98
badge_attributes_coveralls. insert ( String :: from ( "repository" ) , String :: from ( "rust-lang/rust" ) ) ;
97
99
badge_attributes_coveralls. insert ( String :: from ( "service" ) , String :: from ( "github" ) ) ;
98
100
101
+ let circle_ci = Badge :: CircleCi {
102
+ repository : String :: from ( "rust-lang/rust" ) ,
103
+ branch : Some ( String :: from ( "beta" ) ) ,
104
+ } ;
105
+ let mut badge_attributes_circle_ci = HashMap :: new ( ) ;
106
+ badge_attributes_circle_ci. insert ( String :: from ( "branch" ) , String :: from ( "beta" ) ) ;
107
+ badge_attributes_circle_ci. insert ( String :: from ( "repository" ) , String :: from ( "rust-lang/rust" ) ) ;
108
+
99
109
let badges = BadgeRef {
100
110
appveyor : appveyor,
101
111
appveyor_attributes : badge_attributes_appveyor,
@@ -112,6 +122,8 @@ fn set_up() -> (Arc<App>, Crate, BadgeRef) {
112
122
codecov_attributes : badge_attributes_codecov,
113
123
coveralls : coveralls,
114
124
coveralls_attributes : badge_attributes_coveralls,
125
+ circle_ci : circle_ci,
126
+ circle_ci_attributes : badge_attributes_circle_ci,
115
127
} ;
116
128
( app, krate, badges)
117
129
}
@@ -223,6 +235,18 @@ fn update_add_coveralls() {
223
235
assert_eq ! ( krate. badges( & conn) . unwrap( ) , vec![ test_badges. coveralls] ) ;
224
236
}
225
237
238
+ #[ test]
239
+ fn update_add_circle_ci ( ) {
240
+ // Add a CircleCI badge
241
+ let ( app, krate, test_badges) = set_up ( ) ;
242
+ let conn = app. diesel_database . get ( ) . unwrap ( ) ;
243
+
244
+ let mut badges = HashMap :: new ( ) ;
245
+ badges. insert ( String :: from ( "circle-ci" ) , test_badges. circle_ci_attributes ) ;
246
+ Badge :: update_crate ( & conn, & krate, Some ( & badges) ) . unwrap ( ) ;
247
+ assert_eq ! ( krate. badges( & conn) . unwrap( ) , vec![ test_badges. circle_ci] ) ;
248
+ }
249
+
226
250
#[ test]
227
251
fn replace_badge ( ) {
228
252
// Replacing one badge with another
@@ -438,6 +462,24 @@ fn coveralls_required_keys() {
438
462
assert_eq ! ( krate. badges( & conn) . unwrap( ) , vec![ ] ) ;
439
463
}
440
464
465
+ #[ test]
466
+ fn circle_ci_required_keys ( ) {
467
+ // Add a CircleCI badge missing a required field
468
+ let ( app, krate, mut test_badges) = set_up ( ) ;
469
+ let conn = app. diesel_database . get ( ) . unwrap ( ) ;
470
+
471
+ let mut badges = HashMap :: new ( ) ;
472
+
473
+ // Repository is a required key
474
+ test_badges. circle_ci_attributes . remove ( "repository" ) ;
475
+ badges. insert ( String :: from ( "circle-ci" ) , test_badges. circle_ci_attributes ) ;
476
+
477
+ let invalid_badges = Badge :: update_crate ( & conn, & krate, Some ( & badges) ) . unwrap ( ) ;
478
+ assert_eq ! ( invalid_badges. len( ) , 1 ) ;
479
+ assert ! ( invalid_badges. contains( & "circle-ci" ) ) ;
480
+ assert_eq ! ( krate. badges( & conn) . unwrap( ) , vec![ ] ) ;
481
+ }
482
+
441
483
#[ test]
442
484
fn unknown_badge ( ) {
443
485
// Add an unknown badge
0 commit comments