43 lines
954 B
Go
43 lines
954 B
Go
package api
|
|
|
|
import (
|
|
"encoding/json"
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func TestPullRequest_ChecksStatus(t *testing.T) {
|
|
pr := PullRequest{}
|
|
payload := `
|
|
{ "commits": { "nodes": [{ "commit": {
|
|
"statusCheckRollup": {
|
|
"contexts": {
|
|
"nodes": [
|
|
{ "state": "SUCCESS" },
|
|
{ "state": "PENDING" },
|
|
{ "state": "FAILURE" },
|
|
{ "status": "IN_PROGRESS",
|
|
"conclusion": null },
|
|
{ "status": "COMPLETED",
|
|
"conclusion": "SUCCESS" },
|
|
{ "status": "COMPLETED",
|
|
"conclusion": "FAILURE" },
|
|
{ "status": "COMPLETED",
|
|
"conclusion": "ACTION_REQUIRED" },
|
|
{ "status": "COMPLETED",
|
|
"conclusion": "STALE" }
|
|
]
|
|
}
|
|
}
|
|
} }] } }
|
|
`
|
|
err := json.Unmarshal([]byte(payload), &pr)
|
|
assert.NoError(t, err)
|
|
|
|
checks := pr.ChecksStatus()
|
|
assert.Equal(t, 8, checks.Total)
|
|
assert.Equal(t, 3, checks.Pending)
|
|
assert.Equal(t, 3, checks.Failing)
|
|
assert.Equal(t, 2, checks.Passing)
|
|
}
|