blob: 353f304fe32b0ca4735d908069eaae9003f3b490 [file] [log] [blame]
package notifier
import (
"testing"
assert "github.com/stretchr/testify/require"
"go.skia.org/infra/go/testutils"
)
func TestConfigs(t *testing.T) {
testutils.SmallTest(t)
c := Config{}
assert.EqualError(t, c.Validate(), "Filter is required.")
c = Config{
Filter: "bogus",
}
assert.EqualError(t, c.Validate(), "Unknown filter \"bogus\"")
c = Config{
Filter: "debug",
}
assert.EqualError(t, c.Validate(), "Exactly one notification config must be supplied, but got 0")
c = Config{
Filter: "debug",
Email: &EmailNotifierConfig{},
}
assert.EqualError(t, c.Validate(), "Emails is required.")
c = Config{
Filter: "debug",
Email: &EmailNotifierConfig{
Emails: []string{},
},
}
assert.EqualError(t, c.Validate(), "Emails is required.")
c = Config{
Filter: "debug",
Email: &EmailNotifierConfig{
Emails: []string{"test@example.com"},
},
}
assert.NoError(t, c.Validate())
c = Config{
Filter: "debug",
Chat: &ChatNotifierConfig{},
}
assert.EqualError(t, c.Validate(), "RoomID is required.")
c = Config{
Filter: "debug",
Chat: &ChatNotifierConfig{
RoomID: "my-room",
},
}
assert.NoError(t, c.Validate())
c = Config{
Filter: "debug",
Email: &EmailNotifierConfig{
Emails: []string{"test@example.com"},
},
Chat: &ChatNotifierConfig{},
}
assert.EqualError(t, c.Validate(), "Exactly one notification config must be supplied, but got 2")
}