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 }