Skip to content

Commit eba9c0c

Browse files
authored
Add testing for CalcCommitStatus (#28823)
1 parent c8ba17c commit eba9c0c

File tree

1 file changed

+115
-0
lines changed

1 file changed

+115
-0
lines changed

models/git/commit_status_test.go

Lines changed: 115 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)