diff options
Diffstat (limited to 'lib/policy/policy_test.go')
| -rw-r--r-- | lib/policy/policy_test.go | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/lib/policy/policy_test.go b/lib/policy/policy_test.go new file mode 100644 index 0000000..16ca9c7 --- /dev/null +++ b/lib/policy/policy_test.go @@ -0,0 +1,68 @@ +package policy + +import ( + "os" + "path/filepath" + "testing" + + "github.com/TecharoHQ/anubis" + "github.com/TecharoHQ/anubis/data" +) + +func TestDefaultPolicyMustParse(t *testing.T) { + fin, err := data.BotPolicies.Open("botPolicies.json") + if err != nil { + t.Fatal(err) + } + defer fin.Close() + + if _, err := ParseConfig(fin, "botPolicies.json", anubis.DefaultDifficulty); err != nil { + t.Fatalf("can't parse config: %v", err) + } +} + +func TestGoodConfigs(t *testing.T) { + finfos, err := os.ReadDir("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("config", "testdata", "good", st.Name())) + if err != nil { + t.Fatal(err) + } + defer fin.Close() + + if _, err := ParseConfig(fin, fin.Name(), anubis.DefaultDifficulty); err != nil { + t.Fatal(err) + } + }) + } +} + +func TestBadConfigs(t *testing.T) { + finfos, err := os.ReadDir("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("config", "testdata", "bad", st.Name())) + if err != nil { + t.Fatal(err) + } + defer fin.Close() + + if _, err := ParseConfig(fin, fin.Name(), anubis.DefaultDifficulty); err == nil { + t.Fatal(err) + } else { + t.Log(err) + } + }) + } +} |
