opengraph_test.go 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. package config
  2. import (
  3. "errors"
  4. "testing"
  5. )
  6. func TestOpenGraphFileConfigValid(t *testing.T) {
  7. for _, tt := range []struct {
  8. err error
  9. input *openGraphFileConfig
  10. name string
  11. }{
  12. {
  13. name: "basic happy path",
  14. input: &openGraphFileConfig{
  15. Enabled: true,
  16. ConsiderHost: false,
  17. TimeToLive: "1h",
  18. Override: map[string]string{},
  19. },
  20. err: nil,
  21. },
  22. {
  23. name: "basic happy path with default",
  24. input: &openGraphFileConfig{
  25. Enabled: true,
  26. ConsiderHost: false,
  27. TimeToLive: "1h",
  28. Override: map[string]string{
  29. "og:title": "foobar",
  30. },
  31. },
  32. err: nil,
  33. },
  34. {
  35. name: "invalid time duration",
  36. input: &openGraphFileConfig{
  37. Enabled: true,
  38. ConsiderHost: false,
  39. TimeToLive: "taco",
  40. Override: map[string]string{},
  41. },
  42. err: ErrOpenGraphTTLDoesNotParse,
  43. },
  44. {
  45. name: "missing og:title in defaults",
  46. input: &openGraphFileConfig{
  47. Enabled: true,
  48. ConsiderHost: false,
  49. TimeToLive: "1h",
  50. Override: map[string]string{
  51. "description": "foobar",
  52. },
  53. },
  54. err: ErrOpenGraphMissingProperty,
  55. },
  56. } {
  57. t.Run(tt.name, func(t *testing.T) {
  58. if err := tt.input.Valid(); !errors.Is(err, tt.err) {
  59. t.Logf("wanted error: %v", tt.err)
  60. t.Logf("got error: %v", err)
  61. t.Error("validation failed")
  62. }
  63. })
  64. }
  65. }