3
0
corteza/pkg/slice/keys_test.go
Vivek Patel 3edef9e373 Improves record-value manipulation
This will fix WF issue for accessing record's value via selectors & gval expressions
2021-06-16 12:33:05 +05:30

53 lines
860 B
Go

package slice
import (
"fmt"
"strings"
"testing"
"github.com/stretchr/testify/require"
)
func TestKeys(t *testing.T) {
var (
cases = []struct {
name string
in interface{}
out string
}{
{
in: map[string]interface{}{"b": nil, "c": nil, "d": nil, "a": nil},
// warning! false booleans will not be set and that is ok!
out: "a,b,c,d",
},
{
in: map[int]interface{}{4: nil, 2: nil, 3: nil, 1: nil},
// warning! false booleans will not be set and that is ok!
out: "1,2,3,4",
},
{
in: nil,
out: "",
},
{
in: 42,
out: "",
},
}
)
for _, c := range cases {
if c.name == "" && c.in != nil {
c.name = fmt.Sprintf("%T", c.in)
}
t.Run(c.name, func(t *testing.T) {
var (
req = require.New(t)
)
req.EqualValues(c.out, strings.Join(Keys(c.in), ","))
})
}
}