github.com/mongodb/grip@v0.0.0-20240213223901-f906268d82b9/message/github_status_test.go (about)

     1  package message
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/mongodb/grip/level"
     7  	"github.com/stretchr/testify/assert"
     8  )
     9  
    10  func TestGithubStatus(t *testing.T) {
    11  	assert := assert.New(t) //nolint: vetshadow
    12  
    13  	c := NewGithubStatusMessage(level.Info, "example", GithubStatePending, "https://example.com/hi", "description")
    14  	assert.NotNil(c)
    15  	assert.True(c.Loggable())
    16  
    17  	raw, ok := c.Raw().(*GithubStatus)
    18  	assert.True(ok)
    19  
    20  	assert.NotPanics(func() {
    21  		assert.Equal("example", raw.Context)
    22  		assert.Equal(GithubStatePending, raw.State)
    23  		assert.Equal("https://example.com/hi", raw.URL)
    24  		assert.Equal("description", raw.Description)
    25  	})
    26  
    27  	assert.Equal("example pending: description (https://example.com/hi)", c.String())
    28  }
    29  
    30  func TestGithubStatusInvalidStatusesAreNotLoggable(t *testing.T) {
    31  	assert := assert.New(t) //nolint: vetshadow
    32  
    33  	c := NewGithubStatusMessage(level.Info, "", GithubStatePending, "https://example.com/hi", "description")
    34  	assert.False(c.Loggable())
    35  	c = NewGithubStatusMessage(level.Info, "example", "nope", "https://example.com/hi", "description")
    36  	assert.False(c.Loggable())
    37  	c = NewGithubStatusMessage(level.Info, "example", GithubStatePending, ":foo", "description")
    38  	assert.False(c.Loggable())
    39  
    40  	p := GithubStatus{
    41  		Owner:       "",
    42  		Repo:        "grip",
    43  		Ref:         "master",
    44  		Context:     "example",
    45  		State:       GithubStatePending,
    46  		URL:         "https://example.com/hi",
    47  		Description: "description",
    48  	}
    49  	c = NewGithubStatusMessageWithRepo(level.Info, p)
    50  	assert.False(c.Loggable())
    51  
    52  	p.Owner = "mongodb"
    53  	p.Repo = ""
    54  	c = NewGithubStatusMessageWithRepo(level.Info, p)
    55  	assert.False(c.Loggable())
    56  
    57  	p.Repo = "grip"
    58  	p.Ref = ""
    59  	c = NewGithubStatusMessageWithRepo(level.Info, p)
    60  	assert.False(c.Loggable())
    61  }