github.com/ungtb10d/cli/v2@v2.0.0-20221110210412-98537dd9d6a1/api/pull_request_test.go (about)

     1  package api
     2  
     3  import (
     4  	"encoding/json"
     5  	"testing"
     6  
     7  	"github.com/stretchr/testify/assert"
     8  )
     9  
    10  func TestPullRequest_ChecksStatus(t *testing.T) {
    11  	pr := PullRequest{}
    12  	payload := `
    13  	{ "statusCheckRollup": { "nodes": [{ "commit": {
    14  		"statusCheckRollup": {
    15  			"contexts": {
    16  				"nodes": [
    17  					{ "state": "SUCCESS" },
    18  					{ "state": "PENDING" },
    19  					{ "state": "FAILURE" },
    20  					{ "status": "IN_PROGRESS",
    21  					  "conclusion": null },
    22  					{ "status": "COMPLETED",
    23  					  "conclusion": "SUCCESS" },
    24  					{ "status": "COMPLETED",
    25  					  "conclusion": "FAILURE" },
    26  					{ "status": "COMPLETED",
    27  					  "conclusion": "ACTION_REQUIRED" },
    28  					{ "status": "COMPLETED",
    29  					  "conclusion": "STALE" }
    30  				]
    31  			}
    32  		}
    33  	} }] } }
    34  	`
    35  	err := json.Unmarshal([]byte(payload), &pr)
    36  	assert.NoError(t, err)
    37  
    38  	checks := pr.ChecksStatus()
    39  	assert.Equal(t, 8, checks.Total)
    40  	assert.Equal(t, 3, checks.Pending)
    41  	assert.Equal(t, 3, checks.Failing)
    42  	assert.Equal(t, 2, checks.Passing)
    43  }