github.com/99designs/gqlgen@v0.17.45/graphql/coercion_test.go (about) 1 package graphql 2 3 import ( 4 "encoding/json" 5 "testing" 6 7 "github.com/stretchr/testify/assert" 8 ) 9 10 func TestCoerceList(t *testing.T) { 11 mapInput := map[string]interface{}{ 12 "test": "value", 13 "nested": map[string]interface{}{ 14 "nested": true, 15 }, 16 } 17 18 jsonNumber := json.Number("12") 19 20 assert.Equal(t, []interface{}{"test", "values"}, CoerceList([]interface{}{"test", "values"})) 21 assert.Equal(t, []interface{}{"test"}, CoerceList("test")) 22 assert.Equal(t, []interface{}{"test"}, CoerceList([]string{"test"})) 23 assert.Equal(t, []interface{}{3}, CoerceList([]int{3})) 24 assert.Equal(t, []interface{}{3}, CoerceList(3)) 25 assert.Equal(t, []interface{}{int32(3)}, CoerceList([]int32{3})) 26 assert.Equal(t, []interface{}{int64(2)}, CoerceList([]int64{2})) 27 assert.Equal(t, []interface{}{float32(3.14)}, CoerceList([]float32{3.14})) 28 assert.Equal(t, []interface{}{3.14}, CoerceList([]float64{3.14})) 29 assert.Equal(t, []interface{}{jsonNumber}, CoerceList([]json.Number{jsonNumber})) 30 assert.Equal(t, []interface{}{jsonNumber}, CoerceList(jsonNumber)) 31 assert.Equal(t, []interface{}{true}, CoerceList([]bool{true})) 32 assert.Equal(t, []interface{}{mapInput}, CoerceList(mapInput)) 33 assert.Equal(t, []interface{}{mapInput}, CoerceList([]interface{}{mapInput})) 34 assert.Equal(t, []interface{}{mapInput}, CoerceList([]map[string]interface{}{mapInput})) 35 assert.Empty(t, CoerceList(nil)) 36 }