Skip to content

Commit 49eef32

Browse files
committed
improve tests
1 parent ebeed31 commit 49eef32

File tree

1 file changed

+54
-36
lines changed

1 file changed

+54
-36
lines changed

services/pull/commit_status_test.go

Lines changed: 54 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -14,52 +14,70 @@ import (
1414
)
1515

1616
func TestMergeRequiredContextsCommitStatus(t *testing.T) {
17-
testCases := [][]*git_model.CommitStatus{
17+
cases := []struct {
18+
commitStatuses []*git_model.CommitStatus
19+
requiredContexts []string
20+
expected structs.CommitStatusState
21+
}{
1822
{
19-
{Context: "Build 1", State: structs.CommitStatusSuccess},
20-
{Context: "Build 2", State: structs.CommitStatusSuccess},
21-
{Context: "Build 3", State: structs.CommitStatusSuccess},
23+
commitStatuses: []*git_model.CommitStatus{},
24+
requiredContexts: []string{},
25+
expected: structs.CommitStatusSuccess,
2226
},
2327
{
24-
{Context: "Build 1", State: structs.CommitStatusSuccess},
25-
{Context: "Build 2", State: structs.CommitStatusSuccess},
26-
{Context: "Build 2t", State: structs.CommitStatusPending},
28+
commitStatuses: []*git_model.CommitStatus{
29+
{Context: "Build xxx", State: structs.CommitStatusSkipped},
30+
},
31+
requiredContexts: []string{"Build*"},
32+
expected: structs.CommitStatusSuccess,
2733
},
2834
{
29-
{Context: "Build 1", State: structs.CommitStatusSuccess},
30-
{Context: "Build 2", State: structs.CommitStatusSuccess},
31-
{Context: "Build 2t", State: structs.CommitStatusFailure},
35+
commitStatuses: []*git_model.CommitStatus{
36+
{Context: "Build 1", State: structs.CommitStatusSuccess},
37+
{Context: "Build 2", State: structs.CommitStatusSuccess},
38+
{Context: "Build 3", State: structs.CommitStatusSuccess},
39+
},
40+
requiredContexts: []string{"Build*"},
41+
expected: structs.CommitStatusSuccess,
3242
},
3343
{
34-
{Context: "Build 1", State: structs.CommitStatusSuccess},
35-
{Context: "Build 2", State: structs.CommitStatusSuccess},
36-
{Context: "Build 2t", State: structs.CommitStatusSuccess},
44+
commitStatuses: []*git_model.CommitStatus{
45+
{Context: "Build 1", State: structs.CommitStatusSuccess},
46+
{Context: "Build 2", State: structs.CommitStatusSuccess},
47+
{Context: "Build 2t", State: structs.CommitStatusPending},
48+
},
49+
requiredContexts: []string{"Build*", "Build 2t*"},
50+
expected: structs.CommitStatusPending,
3751
},
3852
{
39-
{Context: "Build 1", State: structs.CommitStatusSuccess},
40-
{Context: "Build 2", State: structs.CommitStatusSuccess},
41-
{Context: "Build 2t", State: structs.CommitStatusSuccess},
53+
commitStatuses: []*git_model.CommitStatus{
54+
{Context: "Build 1", State: structs.CommitStatusSuccess},
55+
{Context: "Build 2", State: structs.CommitStatusSuccess},
56+
{Context: "Build 2t", State: structs.CommitStatusFailure},
57+
},
58+
requiredContexts: []string{"Build*", "Build 2t*"},
59+
expected: structs.CommitStatusFailure,
60+
},
61+
{
62+
commitStatuses: []*git_model.CommitStatus{
63+
{Context: "Build 1", State: structs.CommitStatusSuccess},
64+
{Context: "Build 2", State: structs.CommitStatusSuccess},
65+
{Context: "Build 2t", State: structs.CommitStatusSuccess},
66+
},
67+
requiredContexts: []string{"Build*", "Build 2t*", "Build 3*"},
68+
expected: structs.CommitStatusPending,
69+
},
70+
{
71+
commitStatuses: []*git_model.CommitStatus{
72+
{Context: "Build 1", State: structs.CommitStatusSuccess},
73+
{Context: "Build 2", State: structs.CommitStatusSuccess},
74+
{Context: "Build 2t", State: structs.CommitStatusSuccess},
75+
},
76+
requiredContexts: []string{"Build*", "Build *", "Build 2t*", "Build 1*"},
77+
expected: structs.CommitStatusSuccess,
4278
},
4379
}
44-
testCasesRequiredContexts := [][]string{
45-
{"Build*"},
46-
{"Build*", "Build 2t*"},
47-
{"Build*", "Build 2t*"},
48-
{"Build*", "Build 2t*", "Build 3*"},
49-
{"Build*", "Build *", "Build 2t*", "Build 1*"},
50-
}
51-
52-
testCasesExpected := []structs.CommitStatusState{
53-
structs.CommitStatusSuccess,
54-
structs.CommitStatusPending,
55-
structs.CommitStatusFailure,
56-
structs.CommitStatusPending,
57-
structs.CommitStatusSuccess,
58-
}
59-
60-
for i, commitStatuses := range testCases {
61-
if MergeRequiredContextsCommitStatus(commitStatuses, testCasesRequiredContexts[i]) != testCasesExpected[i] {
62-
assert.Fail(t, "Test case failed", "Test case %d failed", i+1)
63-
}
80+
for i, c := range cases {
81+
assert.Equal(t, c.expected, MergeRequiredContextsCommitStatus(c.commitStatuses, c.requiredContexts), "case %d", i)
6482
}
6583
}

0 commit comments

Comments
 (0)