66 lines
1.1 KiB
Go
66 lines
1.1 KiB
Go
|
package psql
|
||
|
|
||
|
import (
|
||
|
"encoding/json"
|
||
|
"fmt"
|
||
|
"testing"
|
||
|
)
|
||
|
|
||
|
func singleInsert(t *testing.T) {
|
||
|
gql := `mutation {
|
||
|
product(id: 15, insert: $insert) {
|
||
|
id
|
||
|
name
|
||
|
}
|
||
|
}`
|
||
|
|
||
|
sql := `test`
|
||
|
|
||
|
vars := map[string]json.RawMessage{
|
||
|
"insert": json.RawMessage(` { "name": "my_name", "woo": { "hoo": "goo" }, "description": "my_desc" }`),
|
||
|
}
|
||
|
|
||
|
resSQL, err := compileGQLToPSQL(gql, vars)
|
||
|
if err != nil {
|
||
|
t.Fatal(err)
|
||
|
}
|
||
|
|
||
|
fmt.Println(">", string(resSQL))
|
||
|
|
||
|
if string(resSQL) != sql {
|
||
|
t.Fatal(errNotExpected)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func bulkInsert(t *testing.T) {
|
||
|
gql := `mutation {
|
||
|
product(id: 15, insert: $insert) {
|
||
|
id
|
||
|
name
|
||
|
}
|
||
|
}`
|
||
|
|
||
|
sql := `test`
|
||
|
|
||
|
vars := map[string]json.RawMessage{
|
||
|
"insert": json.RawMessage(` [{ "name": "my_name", "woo": { "hoo": "goo" }, "description": "my_desc" }]`),
|
||
|
}
|
||
|
|
||
|
resSQL, err := compileGQLToPSQL(gql, vars)
|
||
|
if err != nil {
|
||
|
t.Fatal(err)
|
||
|
}
|
||
|
|
||
|
fmt.Println(">", string(resSQL))
|
||
|
|
||
|
if string(resSQL) != sql {
|
||
|
t.Fatal(errNotExpected)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func TestCompileInsert(t *testing.T) {
|
||
|
t.Run("singleInsert", singleInsert)
|
||
|
t.Run("bulkInsert", bulkInsert)
|
||
|
|
||
|
}
|