...
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 }
37
View as plain text