@@ -60,3 +60,118 @@ func TestGetCommitStatuses(t *testing.T) {
6060 assert .Equal (t , int (maxResults ), 5 )
6161 assert .Empty (t , statuses )
6262}
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