@@ -60,3 +60,118 @@ func TestGetCommitStatuses(t *testing.T) {
60
60
assert .Equal (t , int (maxResults ), 5 )
61
61
assert .Empty (t , statuses )
62
62
}
63
+
64
+ func Test_CalcCommitStatus (t * testing.T ) {
65
+ kases := []struct {
66
+ statuses []* git_model.CommitStatus
67
+ expected * git_model.CommitStatus
68
+ }{
69
+ {
70
+ statuses : []* git_model.CommitStatus {
71
+ {
72
+ State : structs .CommitStatusPending ,
73
+ },
74
+ },
75
+ expected : & git_model.CommitStatus {
76
+ State : structs .CommitStatusPending ,
77
+ },
78
+ },
79
+ {
80
+ statuses : []* git_model.CommitStatus {
81
+ {
82
+ State : structs .CommitStatusSuccess ,
83
+ },
84
+ {
85
+ State : structs .CommitStatusPending ,
86
+ },
87
+ },
88
+ expected : & git_model.CommitStatus {
89
+ State : structs .CommitStatusPending ,
90
+ },
91
+ },
92
+ {
93
+ statuses : []* git_model.CommitStatus {
94
+ {
95
+ State : structs .CommitStatusSuccess ,
96
+ },
97
+ {
98
+ State : structs .CommitStatusPending ,
99
+ },
100
+ {
101
+ State : structs .CommitStatusSuccess ,
102
+ },
103
+ },
104
+ expected : & git_model.CommitStatus {
105
+ State : structs .CommitStatusPending ,
106
+ },
107
+ },
108
+ {
109
+ statuses : []* git_model.CommitStatus {
110
+ {
111
+ State : structs .CommitStatusError ,
112
+ },
113
+ {
114
+ State : structs .CommitStatusPending ,
115
+ },
116
+ {
117
+ State : structs .CommitStatusSuccess ,
118
+ },
119
+ },
120
+ expected : & git_model.CommitStatus {
121
+ State : structs .CommitStatusError ,
122
+ },
123
+ },
124
+ {
125
+ statuses : []* git_model.CommitStatus {
126
+ {
127
+ State : structs .CommitStatusWarning ,
128
+ },
129
+ {
130
+ State : structs .CommitStatusPending ,
131
+ },
132
+ {
133
+ State : structs .CommitStatusSuccess ,
134
+ },
135
+ },
136
+ expected : & git_model.CommitStatus {
137
+ State : structs .CommitStatusWarning ,
138
+ },
139
+ },
140
+ {
141
+ statuses : []* git_model.CommitStatus {
142
+ {
143
+ State : structs .CommitStatusSuccess ,
144
+ },
145
+ {
146
+ State : structs .CommitStatusSuccess ,
147
+ },
148
+ {
149
+ State : structs .CommitStatusSuccess ,
150
+ },
151
+ },
152
+ expected : & git_model.CommitStatus {
153
+ State : structs .CommitStatusSuccess ,
154
+ },
155
+ },
156
+ {
157
+ statuses : []* git_model.CommitStatus {
158
+ {
159
+ State : structs .CommitStatusFailure ,
160
+ },
161
+ {
162
+ State : structs .CommitStatusError ,
163
+ },
164
+ {
165
+ State : structs .CommitStatusWarning ,
166
+ },
167
+ },
168
+ expected : & git_model.CommitStatus {
169
+ State : structs .CommitStatusError ,
170
+ },
171
+ },
172
+ }
173
+
174
+ for _ , kase := range kases {
175
+ assert .Equal (t , kase .expected , git_model .CalcCommitStatus (kase .statuses ))
176
+ }
177
+ }
0 commit comments