59 lines
1.4 KiB
Go
59 lines
1.4 KiB
Go
package config
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func TestParseChecklistValueJSON(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
values, err := ParseChecklistValue(`["documents","photos"]`)
|
|
require.NoError(t, err)
|
|
assert.Equal(t, []string{"documents", "photos"}, values)
|
|
|
|
values, err = ParseChecklistValue(`["kitchen,bedroom","hallway"]`)
|
|
require.NoError(t, err)
|
|
assert.Equal(t, []string{"kitchen,bedroom", "hallway"}, values)
|
|
}
|
|
|
|
func TestParseChecklistValueSingleValue(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
values, err := ParseChecklistValue("documents")
|
|
require.NoError(t, err)
|
|
assert.Equal(t, []string{"documents"}, values)
|
|
}
|
|
|
|
func TestParseChecklistValueRejectsLegacyCommaSeparated(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
_, err := ParseChecklistValue("documents, photos")
|
|
require.Error(t, err)
|
|
}
|
|
|
|
func TestParseChecklistValueRejectsEmptyJSONSegment(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
_, err := ParseChecklistValue(`["documents","","photos"]`)
|
|
require.Error(t, err)
|
|
}
|
|
|
|
func TestFormatChecklistValueJSON(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
encoded, err := FormatChecklistValue([]string{"documents", "photos"})
|
|
require.NoError(t, err)
|
|
assert.Equal(t, `["documents","photos"]`, encoded)
|
|
|
|
encoded, err = FormatChecklistValue([]string{"kitchen,bedroom"})
|
|
require.NoError(t, err)
|
|
assert.Equal(t, `["kitchen,bedroom"]`, encoded)
|
|
|
|
encoded, err = FormatChecklistValue(nil)
|
|
require.NoError(t, err)
|
|
assert.Empty(t, encoded)
|
|
}
|