commit
7c22040b8d
|
@ -491,7 +491,7 @@ func (c *OpsGenieConfig) UnmarshalYAML(unmarshal func(interface{}) error) error
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
if c.APIURL != nil && len(c.APIKeyFile) > 0 {
|
if c.APIKey != "" && len(c.APIKeyFile) > 0 {
|
||||||
return fmt.Errorf("at most one of api_key & api_key_file must be configured")
|
return fmt.Errorf("at most one of api_key & api_key_file must be configured")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -590,6 +590,72 @@ func TestOpsgenieTypeMatcher(t *testing.T) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestOpsGenieConfiguration(t *testing.T) {
|
||||||
|
for _, tc := range []struct {
|
||||||
|
name string
|
||||||
|
in string
|
||||||
|
|
||||||
|
err bool
|
||||||
|
}{
|
||||||
|
{
|
||||||
|
name: "valid configuration",
|
||||||
|
in: `api_key: xyz
|
||||||
|
responders:
|
||||||
|
- id: foo
|
||||||
|
type: scheDule
|
||||||
|
- name: bar
|
||||||
|
type: teams
|
||||||
|
- username: fred
|
||||||
|
type: USER
|
||||||
|
api_url: http://example.com
|
||||||
|
`,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "api_key and api_key_file both defined",
|
||||||
|
in: `api_key: xyz
|
||||||
|
api_key_file: xyz
|
||||||
|
api_url: http://example.com
|
||||||
|
`,
|
||||||
|
err: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "invalid responder type",
|
||||||
|
in: `api_key: xyz
|
||||||
|
responders:
|
||||||
|
- id: foo
|
||||||
|
type: wrong
|
||||||
|
api_url: http://example.com
|
||||||
|
`,
|
||||||
|
err: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "missing responder field",
|
||||||
|
in: `api_key: xyz
|
||||||
|
responders:
|
||||||
|
- type: schedule
|
||||||
|
api_url: http://example.com
|
||||||
|
`,
|
||||||
|
err: true,
|
||||||
|
},
|
||||||
|
} {
|
||||||
|
t.Run(tc.name, func(t *testing.T) {
|
||||||
|
var cfg OpsGenieConfig
|
||||||
|
|
||||||
|
err := yaml.UnmarshalStrict([]byte(tc.in), &cfg)
|
||||||
|
if tc.err {
|
||||||
|
if err == nil {
|
||||||
|
t.Fatalf("expected error but got none")
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
|
t.Errorf("expected no error, got %v", err)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func TestSNS(t *testing.T) {
|
func TestSNS(t *testing.T) {
|
||||||
for _, tc := range []struct {
|
for _, tc := range []struct {
|
||||||
in string
|
in string
|
||||||
|
|
Loading…
Reference in New Issue