diff options
Diffstat (limited to 'cmd/anubis/policy_test.go')
| -rw-r--r-- | cmd/anubis/policy_test.go | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/cmd/anubis/policy_test.go b/cmd/anubis/policy_test.go new file mode 100644 index 0000000..9a5699e --- /dev/null +++ b/cmd/anubis/policy_test.go @@ -0,0 +1,65 @@ +package main + +import ( + "os" + "path/filepath" + "testing" +) + +func TestDefaultPolicyMustParse(t *testing.T) { + fin, err := static.Open("botPolicies.json") + if err != nil { + t.Fatal(err) + } + defer fin.Close() + + if _, err := parseConfig(fin, "botPolicies.json"); err != nil { + t.Fatalf("can't parse config: %v", err) + } +} + +func TestGoodConfigs(t *testing.T) { + finfos, err := os.ReadDir("internal/config/testdata/good") + if err != nil { + t.Fatal(err) + } + + for _, st := range finfos { + st := st + t.Run(st.Name(), func(t *testing.T) { + fin, err := os.Open(filepath.Join("internal", "config", "testdata", "good", st.Name())) + if err != nil { + t.Fatal(err) + } + defer fin.Close() + + if _, err := parseConfig(fin, fin.Name()); err != nil { + t.Fatal(err) + } + }) + } +} + +func TestBadConfigs(t *testing.T) { + finfos, err := os.ReadDir("internal/config/testdata/bad") + if err != nil { + t.Fatal(err) + } + + for _, st := range finfos { + st := st + t.Run(st.Name(), func(t *testing.T) { + fin, err := os.Open(filepath.Join("internal", "config", "testdata", "bad", st.Name())) + if err != nil { + t.Fatal(err) + } + defer fin.Close() + + if _, err := parseConfig(fin, fin.Name()); err == nil { + t.Fatal(err) + } else { + t.Log(err) + } + }) + } +} |
