Make configuration truthful and clean remote session files
This commit is contained in:
68
internal/config/notification_test.go
Normal file
68
internal/config/notification_test.go
Normal file
@@ -0,0 +1,68 @@
|
||||
package config
|
||||
|
||||
import (
|
||||
"strings"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestNotificationConfigSupportsOnlyNoopMode(t *testing.T) {
|
||||
tests := []struct {
|
||||
name string
|
||||
section string
|
||||
wantLoad string
|
||||
wantValidate string
|
||||
}{
|
||||
{
|
||||
name: "default noop mode",
|
||||
section: "",
|
||||
},
|
||||
{
|
||||
name: "explicit noop mode",
|
||||
section: "notification:\n mode: noop\n",
|
||||
},
|
||||
{
|
||||
name: "backend is rejected",
|
||||
section: "notification:\n backend: email\n",
|
||||
wantLoad: "field backend not found",
|
||||
},
|
||||
{
|
||||
name: "recipient is rejected",
|
||||
section: "notification:\n recipient: party@example.com\n",
|
||||
wantLoad: "field recipient not found",
|
||||
},
|
||||
{
|
||||
name: "provider mode is rejected",
|
||||
section: "notification:\n mode: email\n",
|
||||
wantValidate: "pipeline.notification.mode must be \"noop\"",
|
||||
},
|
||||
}
|
||||
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
pipelinePath, sessionPath := writeConfigFiles(t, testPipelineBaseYAML+"\n"+tt.section, testSessionBaseYAML)
|
||||
cfg, err := Load(pipelinePath, sessionPath)
|
||||
if tt.wantLoad != "" {
|
||||
if err == nil || !strings.Contains(err.Error(), tt.wantLoad) {
|
||||
t.Fatalf("Load() error = %v, want %q", err, tt.wantLoad)
|
||||
}
|
||||
return
|
||||
}
|
||||
if err != nil {
|
||||
t.Fatalf("Load() error = %v", err)
|
||||
}
|
||||
if got := cfg.Pipeline.Notification.Mode; tt.wantValidate == "" && got != DefaultNotificationMode {
|
||||
t.Fatalf("notification.mode = %q, want %q", got, DefaultNotificationMode)
|
||||
}
|
||||
err = Validate(cfg)
|
||||
if tt.wantValidate != "" {
|
||||
if err == nil || !strings.Contains(err.Error(), tt.wantValidate) {
|
||||
t.Fatalf("Validate() error = %v, want %q", err, tt.wantValidate)
|
||||
}
|
||||
return
|
||||
}
|
||||
if err != nil {
|
||||
t.Fatalf("Validate() error = %v", err)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user