mirror of
https://github.com/VictoriaMetrics/VictoriaMetrics.git
synced 2024-12-20 23:46:23 +01:00
43fc1183b9
This makes test code more clear and reduces the number of code lines by 500.
This also simplifies debugging tests. See https://itnext.io/f-tests-as-a-replacement-for-table-driven-tests-in-go-8814a8b19e9e
While at it, consistently use t.Fatal* instead of t.Error* across tests, since t.Error*
requires more boilerplate code, which can result in additional bugs inside tests.
While t.Error* allows writing logging errors for the same, this doesn't simplify fixing
broken tests most of the time.
This is a follow-up for a9525da8a4
39 lines
791 B
Go
39 lines
791 B
Go
package notifier
|
|
|
|
import (
|
|
"strings"
|
|
"testing"
|
|
)
|
|
|
|
func TestParseConfig_Success(t *testing.T) {
|
|
f := func(path string) {
|
|
t.Helper()
|
|
|
|
_, err := parseConfig(path)
|
|
if err != nil {
|
|
t.Fatalf("unexpected error: %s", err)
|
|
}
|
|
}
|
|
f("testdata/mixed.good.yaml")
|
|
f("testdata/consul.good.yaml")
|
|
f("testdata/dns.good.yaml")
|
|
f("testdata/static.good.yaml")
|
|
}
|
|
|
|
func TestParseConfig_Failure(t *testing.T) {
|
|
f := func(path, expErr string) {
|
|
t.Helper()
|
|
|
|
_, err := parseConfig(path)
|
|
if err == nil {
|
|
t.Fatalf("expected to get non-nil err for config %q", path)
|
|
}
|
|
if !strings.Contains(err.Error(), expErr) {
|
|
t.Fatalf("expected err to contain %q; got %q instead", expErr, err)
|
|
}
|
|
}
|
|
|
|
f("testdata/unknownFields.bad.yaml", "unknown field")
|
|
f("non-existing-file", "error reading")
|
|
}
|