...

Source file src/github.com/99designs/gqlgen/graphql/coercion_test.go

Documentation: github.com/99designs/gqlgen/graphql

     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