config_test.go 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. package lib
  2. import (
  3. "errors"
  4. "os"
  5. "path/filepath"
  6. "testing"
  7. "github.com/TecharoHQ/anubis"
  8. "github.com/TecharoHQ/anubis/lib/policy"
  9. )
  10. func TestInvalidChallengeMethod(t *testing.T) {
  11. if _, err := LoadPoliciesOrDefault("testdata/invalid-challenge-method.yaml", 4); !errors.Is(err, policy.ErrChallengeRuleHasWrongAlgorithm) {
  12. t.Fatalf("wanted error %v but got %v", policy.ErrChallengeRuleHasWrongAlgorithm, err)
  13. }
  14. }
  15. func TestBadConfigs(t *testing.T) {
  16. finfos, err := os.ReadDir("policy/config/testdata/bad")
  17. if err != nil {
  18. t.Fatal(err)
  19. }
  20. for _, st := range finfos {
  21. st := st
  22. t.Run(st.Name(), func(t *testing.T) {
  23. if _, err := LoadPoliciesOrDefault(filepath.Join("policy", "config", "testdata", "good", st.Name()), anubis.DefaultDifficulty); err == nil {
  24. t.Fatal(err)
  25. } else {
  26. t.Log(err)
  27. }
  28. })
  29. }
  30. }
  31. func TestGoodConfigs(t *testing.T) {
  32. finfos, err := os.ReadDir("policy/config/testdata/good")
  33. if err != nil {
  34. t.Fatal(err)
  35. }
  36. for _, st := range finfos {
  37. st := st
  38. t.Run(st.Name(), func(t *testing.T) {
  39. if _, err := LoadPoliciesOrDefault(filepath.Join("policy", "config", "testdata", "good", st.Name()), anubis.DefaultDifficulty); err != nil {
  40. t.Fatal(err)
  41. }
  42. })
  43. }
  44. }