@@ -7,6 +7,8 @@ struct BadgeRef {
7
7
appveyor_attributes : HashMap < String , String > ,
8
8
travis_ci : Badge ,
9
9
travis_ci_attributes : HashMap < String , String > ,
10
+ github : Badge ,
11
+ github_attributes : HashMap < String , String > ,
10
12
gitlab : Badge ,
11
13
gitlab_attributes : HashMap < String , String > ,
12
14
azure_devops : Badge ,
@@ -76,6 +78,14 @@ fn set_up() -> (BadgeTestCrate, BadgeRef) {
76
78
badge_attributes_travis_ci. insert ( String :: from ( "branch" ) , String :: from ( "beta" ) ) ;
77
79
badge_attributes_travis_ci. insert ( String :: from ( "repository" ) , String :: from ( "rust-lang/rust" ) ) ;
78
80
81
+ let github = Badge :: GitHub {
82
+ repository : String :: from ( "rust-lang/rust" ) ,
83
+ workflow : String :: from ( "build" ) ,
84
+ } ;
85
+ let mut badge_attributes_github = HashMap :: new ( ) ;
86
+ badge_attributes_github. insert ( String :: from ( "repository" ) , String :: from ( "rust-lang/rust" ) ) ;
87
+ badge_attributes_github. insert ( String :: from ( "workflow" ) , String :: from ( "build" ) ) ;
88
+
79
89
let gitlab = Badge :: GitLab {
80
90
branch : Some ( String :: from ( "beta" ) ) ,
81
91
repository : String :: from ( "rust-lang/rust" ) ,
@@ -158,6 +168,8 @@ fn set_up() -> (BadgeTestCrate, BadgeRef) {
158
168
appveyor_attributes : badge_attributes_appveyor,
159
169
travis_ci,
160
170
travis_ci_attributes : badge_attributes_travis_ci,
171
+ github,
172
+ github_attributes : badge_attributes_github,
161
173
gitlab,
162
174
gitlab_attributes : badge_attributes_gitlab,
163
175
azure_devops,
@@ -213,6 +225,17 @@ fn update_add_travis_ci() {
213
225
assert_eq ! ( krate. badges( ) , vec![ test_badges. travis_ci] ) ;
214
226
}
215
227
228
+ #[ test]
229
+ fn update_add_github ( ) {
230
+ // Add a github badge
231
+ let ( krate, test_badges) = set_up ( ) ;
232
+
233
+ let mut badges = HashMap :: new ( ) ;
234
+ badges. insert ( String :: from ( "github" ) , test_badges. github_attributes ) ;
235
+ krate. update ( & badges) ;
236
+ assert_eq ! ( krate. badges( ) , vec![ test_badges. github] ) ;
237
+ }
238
+
216
239
#[ test]
217
240
fn update_add_gitlab ( ) {
218
241
// Add a gitlab badge
@@ -432,6 +455,36 @@ fn travis_ci_required_keys() {
432
455
assert_eq ! ( krate. badges( ) , vec![ ] ) ;
433
456
}
434
457
458
+ #[ test]
459
+ fn github_required_keys ( ) {
460
+ // Add a github badge missing a required field
461
+ let ( krate, mut test_badges) = set_up ( ) ;
462
+
463
+ let mut badges = HashMap :: new ( ) ;
464
+
465
+ // Repository is a required key
466
+ test_badges. github_attributes . remove ( "repository" ) ;
467
+ badges. insert ( String :: from ( "github" ) , test_badges. github_attributes ) ;
468
+
469
+ let invalid_badges = krate. update ( & badges) ;
470
+ assert_eq ! ( invalid_badges. len( ) , 1 ) ;
471
+ assert_eq ! ( invalid_badges. first( ) . unwrap( ) , "github" ) ;
472
+ assert_eq ! ( krate. badges( ) , vec![ ] ) ;
473
+
474
+ let ( krate, mut test_badges) = set_up ( ) ;
475
+
476
+ let mut badges = HashMap :: new ( ) ;
477
+
478
+ // Workflow is a required key
479
+ test_badges. github_attributes . remove ( "workflow" ) ;
480
+ badges. insert ( String :: from ( "github" ) , test_badges. github_attributes ) ;
481
+
482
+ let invalid_badges = krate. update ( & badges) ;
483
+ assert_eq ! ( invalid_badges. len( ) , 1 ) ;
484
+ assert_eq ! ( invalid_badges. first( ) . unwrap( ) , "github" ) ;
485
+ assert_eq ! ( krate. badges( ) , vec![ ] ) ;
486
+ }
487
+
435
488
#[ test]
436
489
fn gitlab_required_keys ( ) {
437
490
// Add a gitlab badge missing a required field
0 commit comments