checklist_test.go 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. package config
  2. import (
  3. "testing"
  4. "github.com/stretchr/testify/assert"
  5. "github.com/stretchr/testify/require"
  6. )
  7. func TestParseChecklistValueJSON(t *testing.T) {
  8. t.Parallel()
  9. values, err := ParseChecklistValue(`["documents","photos"]`)
  10. require.NoError(t, err)
  11. assert.Equal(t, []string{"documents", "photos"}, values)
  12. values, err = ParseChecklistValue(`["kitchen,bedroom","hallway"]`)
  13. require.NoError(t, err)
  14. assert.Equal(t, []string{"kitchen,bedroom", "hallway"}, values)
  15. }
  16. func TestParseChecklistValueSingleValue(t *testing.T) {
  17. t.Parallel()
  18. values, err := ParseChecklistValue("documents")
  19. require.NoError(t, err)
  20. assert.Equal(t, []string{"documents"}, values)
  21. }
  22. func TestParseChecklistValueRejectsLegacyCommaSeparated(t *testing.T) {
  23. t.Parallel()
  24. _, err := ParseChecklistValue("documents, photos")
  25. require.Error(t, err)
  26. }
  27. func TestParseChecklistValueRejectsEmptyJSONSegment(t *testing.T) {
  28. t.Parallel()
  29. _, err := ParseChecklistValue(`["documents","","photos"]`)
  30. require.Error(t, err)
  31. }
  32. func TestFormatChecklistValueJSON(t *testing.T) {
  33. t.Parallel()
  34. encoded, err := FormatChecklistValue([]string{"documents", "photos"})
  35. require.NoError(t, err)
  36. assert.Equal(t, `["documents","photos"]`, encoded)
  37. encoded, err = FormatChecklistValue([]string{"kitchen,bedroom"})
  38. require.NoError(t, err)
  39. assert.Equal(t, `["kitchen,bedroom"]`, encoded)
  40. encoded, err = FormatChecklistValue(nil)
  41. require.NoError(t, err)
  42. assert.Empty(t, encoded)
  43. }