mirror of
https://github.com/VictoriaMetrics/VictoriaMetrics.git
synced 2024-12-01 14:47:38 +00:00
000a918f38
Both vmalert and vmalert-tool support multiple `rule_files` and use directory as a file, so it's ok if some files don't contain any rule group. But vmalert-tool should warn the user if no rule group is found in any of the `rule_files`. Related issue: https://github.com/VictoriaMetrics/VictoriaMetrics/issues/7663
48 lines
1.1 KiB
Go
48 lines
1.1 KiB
Go
package unittest
|
|
|
|
import (
|
|
"os"
|
|
"testing"
|
|
|
|
"github.com/VictoriaMetrics/VictoriaMetrics/app/vmalert/templates"
|
|
)
|
|
|
|
func TestMain(m *testing.M) {
|
|
if err := templates.Load([]string{}, true); err != nil {
|
|
os.Exit(1)
|
|
}
|
|
os.Exit(m.Run())
|
|
}
|
|
|
|
func TestUnitTest_Failure(t *testing.T) {
|
|
f := func(files []string) {
|
|
t.Helper()
|
|
|
|
failed := UnitTest(files, false, nil, "")
|
|
if !failed {
|
|
t.Fatalf("expecting failed test")
|
|
}
|
|
}
|
|
|
|
f([]string{"./testdata/failed-test-with-missing-rulefile.yaml"})
|
|
|
|
f([]string{"./testdata/failed-test.yaml"})
|
|
}
|
|
|
|
func TestUnitTest_Success(t *testing.T) {
|
|
f := func(disableGroupLabel bool, files []string, externalLabels []string, externalURL string) {
|
|
t.Helper()
|
|
|
|
failed := UnitTest(files, disableGroupLabel, externalLabels, externalURL)
|
|
if failed {
|
|
t.Fatalf("unexpected failed test")
|
|
}
|
|
}
|
|
|
|
// run multi files
|
|
f(false, []string{"./testdata/test1.yaml", "./testdata/test2.yaml"}, []string{"cluster=prod"}, "http://grafana:3000")
|
|
|
|
// disable group label
|
|
// template with null external values
|
|
f(true, []string{"./testdata/disable-group-label.yaml"}, nil, "")
|
|
}
|