package notifiers import ( "testing" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" "github.com/grafana/grafana/pkg/components/simplejson" "github.com/grafana/grafana/pkg/models" ) func TestSensuGoNotifier(t *testing.T) { json := `{ }` settingsJSON, err := simplejson.NewJson([]byte(json)) require.NoError(t, err) model := &models.AlertNotification{ Name: "Sensu Go", Type: "sensugo", Settings: settingsJSON, } _, err = NewSensuGoNotifier(model) require.Error(t, err) json = ` { "url": "http://sensu-api.example.com:8080", "entity": "grafana_instance_01", "check": "grafana_rule_0", "namespace": "default", "handler": "myhandler", "apikey": "abcdef0123456789abcdef" }` settingsJSON, err = simplejson.NewJson([]byte(json)) require.NoError(t, err) model = &models.AlertNotification{ Name: "Sensu Go", Type: "sensugo", Settings: settingsJSON, } not, err := NewSensuGoNotifier(model) require.NoError(t, err) sensuGoNotifier := not.(*SensuGoNotifier) assert.Equal(t, "Sensu Go", sensuGoNotifier.Name) assert.Equal(t, "sensugo", sensuGoNotifier.Type) assert.Equal(t, "http://sensu-api.example.com:8080", sensuGoNotifier.URL) assert.Equal(t, "grafana_instance_01", sensuGoNotifier.Entity) assert.Equal(t, "grafana_rule_0", sensuGoNotifier.Check) assert.Equal(t, "default", sensuGoNotifier.Namespace) assert.Equal(t, "myhandler", sensuGoNotifier.Handler) assert.Equal(t, "abcdef0123456789abcdef", sensuGoNotifier.APIKey) }