package redis import ( "testing" "github.com/redis/go-redis/v9" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" ) func TestRedisChangeStringUsesCacheRepresentations(t *testing.T) { tests := []struct { name string value any want string }{ {name: "string", value: "15.2", want: "15.2"}, {name: "integer", value: int64(15), want: "15"}, {name: "decimal", value: 15.2, want: "15.2"}, {name: "boolean", value: true, want: "true"}, {name: "object", value: map[string]any{"enabled": true}, want: `{"enabled":true}`}, } for _, test := range tests { t.Run(test.name, func(t *testing.T) { got, err := redisChangeString(test.value) require.NoError(t, err) assert.Equal(t, test.want, got) }) } } func TestMergeRedisZValuesReplacesDuplicateMemberAndSorts(t *testing.T) { values := mergeRedisZValues( []redis.Z{ {Score: 20, Member: "2"}, {Score: 10, Member: "1"}, }, redis.Z{Score: 30, Member: "1"}, ) assert.Equal(t, []redis.Z{ {Score: 20, Member: "2"}, {Score: 30, Member: "1"}, }, values) }