@@ -11,6 +11,7 @@ import (
1111
1212func TestAggregateJobStatus (t * testing.T ) {
1313 testStatuses := func (expected Status , statuses []Status ) {
14+ t .Helper ()
1415 var jobs []* ActionRunJob
1516 for _ , v := range statuses {
1617 jobs = append (jobs , & ActionRunJob {Status : v })
@@ -38,18 +39,28 @@ func TestAggregateJobStatus(t *testing.T) {
3839 {[]Status {StatusSuccess , StatusRunning }, StatusRunning },
3940 {[]Status {StatusSuccess , StatusBlocked }, StatusBlocked },
4041
42+ // any cancelled, then cancelled
43+ {[]Status {StatusCancelled }, StatusCancelled },
44+ {[]Status {StatusCancelled , StatusSuccess }, StatusCancelled },
45+ {[]Status {StatusCancelled , StatusSkipped }, StatusCancelled },
46+ {[]Status {StatusCancelled , StatusFailure }, StatusCancelled },
47+ {[]Status {StatusCancelled , StatusWaiting }, StatusCancelled },
48+ {[]Status {StatusCancelled , StatusRunning }, StatusCancelled },
49+ {[]Status {StatusCancelled , StatusBlocked }, StatusCancelled },
50+
4151 // failure with other status, fail fast
4252 // Should "running" win? Maybe no: old code does make "running" win, but GitHub does fail fast.
4353 {[]Status {StatusFailure }, StatusFailure },
4454 {[]Status {StatusFailure , StatusSuccess }, StatusFailure },
4555 {[]Status {StatusFailure , StatusSkipped }, StatusFailure },
46- {[]Status {StatusFailure , StatusCancelled }, StatusFailure },
56+ {[]Status {StatusFailure , StatusCancelled }, StatusCancelled },
4757 {[]Status {StatusFailure , StatusWaiting }, StatusFailure },
4858 {[]Status {StatusFailure , StatusRunning }, StatusFailure },
4959 {[]Status {StatusFailure , StatusBlocked }, StatusFailure },
5060
5161 // skipped with other status
52- {[]Status {StatusSkipped }, StatusSuccess },
62+ // TODO: need to clarify whether a PR with "skipped" job status is considered as "mergeable" or not.
63+ {[]Status {StatusSkipped }, StatusSkipped },
5364 {[]Status {StatusSkipped , StatusSuccess }, StatusSuccess },
5465 {[]Status {StatusSkipped , StatusFailure }, StatusFailure },
5566 {[]Status {StatusSkipped , StatusCancelled }, StatusCancelled },
0 commit comments