factory_test.go 742 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. package bbolt
  2. import (
  3. "encoding/json"
  4. "errors"
  5. "testing"
  6. )
  7. func TestFactoryValid(t *testing.T) {
  8. f := Factory{}
  9. t.Run("bad config", func(t *testing.T) {
  10. if err := f.Valid(json.RawMessage(`}`)); err == nil {
  11. t.Error("wanted parsing failure but got a successful result")
  12. }
  13. })
  14. t.Run("invalid config", func(t *testing.T) {
  15. for _, tt := range []struct {
  16. err error
  17. name string
  18. cfg Config
  19. }{
  20. {
  21. name: "missing path",
  22. cfg: Config{},
  23. err: ErrMissingPath,
  24. },
  25. } {
  26. t.Run(tt.name, func(t *testing.T) {
  27. data, err := json.Marshal(tt.cfg)
  28. if err != nil {
  29. t.Fatal(err)
  30. }
  31. if err := f.Valid(json.RawMessage(data)); !errors.Is(err, tt.err) {
  32. t.Error(err)
  33. }
  34. })
  35. }
  36. })
  37. }