coredns/middleware/errors/setup_test.go
Miek Gieben e261ac1a6e middleware/{log,errors}: output everything to stdout (#684)
Limit the options in both errors and log middleware, just output to
stdout and let someone else (journald,docker) care about where to route
the logs. This removes syslog and logging to a file.

Fixes #573 #602
2017-05-31 20:28:53 +01:00

45 lines
1.1 KiB
Go

package errors
import (
"testing"
"github.com/mholt/caddy"
)
func TestErrorsParse(t *testing.T) {
tests := []struct {
inputErrorsRules string
shouldErr bool
expectedErrorHandler errorHandler
}{
{`errors`, false, errorHandler{
LogFile: "stdout",
}},
{`errors stdout`, false, errorHandler{
LogFile: "stdout",
}},
{`errors errors.txt`, true, errorHandler{
LogFile: "",
}},
{`errors visible`, true, errorHandler{
LogFile: "",
}},
{`errors { log visible }`, true, errorHandler{
LogFile: "stdout",
}},
}
for i, test := range tests {
c := caddy.NewTestController("dns", test.inputErrorsRules)
actualErrorsRule, err := errorsParse(c)
if err == nil && test.shouldErr {
t.Errorf("Test %d didn't error, but it should have", i)
} else if err != nil && !test.shouldErr {
t.Errorf("Test %d errored, but it shouldn't have; got '%v'", i, err)
}
if actualErrorsRule.LogFile != test.expectedErrorHandler.LogFile {
t.Errorf("Test %d expected LogFile to be %s, but got %s",
i, test.expectedErrorHandler.LogFile, actualErrorsRule.LogFile)
}
}
}