Path: blob/dev/pkg/fuzz/component/value_test.go
2070 views
package component12import (3"testing"45"github.com/leslie-qiwa/flat"6"github.com/stretchr/testify/require"7)89func TestFlatMap_FlattenUnflatten(t *testing.T) {10data := map[string]interface{}{11"foo": "bar",12"bar": map[string]interface{}{13"baz": "foo",14},15"slice": []interface{}{16"foo",17"bar",18},19"with.dot": map[string]interface{}{20"foo": "bar",21},22}2324opts := &flat.Options{25Safe: true,26Delimiter: "~",27}28flattened, err := flat.Flatten(data, opts)29if err != nil {30t.Fatal(err)31}3233nested, err := flat.Unflatten(flattened, opts)34if err != nil {35t.Fatal(err)36}37require.Equal(t, data, nested, "unexpected data")38}3940func TestAnySlice(t *testing.T) {41data := []any{}42data = append(data, []int{1, 2, 3})43data = append(data, []string{"foo", "bar"})44data = append(data, []bool{true, false})45data = append(data, []float64{1.1, 2.2, 3.3})4647for _, d := range data {48val, ok := IsTypedSlice(d)49require.True(t, ok, "expected slice")50require.True(t, val != nil, "expected value but got nil")51}52}535455