super-graph/serv/utils_test.go

203 lines
3.2 KiB
Go
Raw Permalink Normal View History

2019-07-29 07:13:33 +02:00
package serv
import (
"strings"
"testing"
)
2019-07-30 07:38:05 +02:00
func TestRelaxHash1(t *testing.T) {
2019-09-05 06:09:56 +02:00
var v1 = `
2019-07-29 07:13:33 +02:00
products(
limit: 30,
where: { id: { AND: { greater_or_equals: 20, lt: 28 } } }) {
id
name
price
2019-09-05 06:09:56 +02:00
}`
2019-07-29 07:13:33 +02:00
2019-09-05 06:09:56 +02:00
var v2 = `
2019-07-29 07:13:33 +02:00
products
(limit: 30, where: { id: { AND: { greater_or_equals: 20, lt: 28 } } }) {
id
name
price
2019-09-05 06:09:56 +02:00
} `
2019-07-29 07:13:33 +02:00
2019-09-05 06:09:56 +02:00
h1 := gqlHash(v1, nil)
h2 := gqlHash(v2, nil)
2019-07-29 07:13:33 +02:00
if strings.Compare(h1, h2) != 0 {
t.Fatal("Hashes don't match they should")
}
2019-07-30 07:38:05 +02:00
}
func TestRelaxHash2(t *testing.T) {
2019-09-05 06:09:56 +02:00
var v1 = `
2019-07-30 07:38:05 +02:00
{
products(
limit: 30
order_by: { price: desc }
distinct: [price]
where: { id: { and: { greater_or_equals: 20, lt: 28 } } }
) {
id
name
price
user {
id
email
}
}
2019-09-05 06:09:56 +02:00
}`
2019-07-29 07:13:33 +02:00
2019-09-05 06:09:56 +02:00
var v2 = ` { products( limit: 30, order_by: { price: desc }, distinct: [ price ] where: { id: { and: { greater_or_equals: 20, lt: 28 } } }) { id name price user { id email } } } `
2019-07-30 07:38:05 +02:00
2019-09-05 06:09:56 +02:00
h1 := gqlHash(v1, nil)
h2 := gqlHash(v2, nil)
if strings.Compare(h1, h2) != 0 {
t.Fatal("Hashes don't match they should")
}
}
2019-10-03 09:08:01 +02:00
func TestRelaxHash3(t *testing.T) {
var v1 = `users {
id
email
picture: avatar
products(limit: 2, where: {price: {gt: 10}}) {
id
name
description
}
}`
var v2 = `
users {
id
email
picture: avatar
products(limit: 2, where: {price: {gt: 10}}) {
id
name
description
}
}
`
h1 := gqlHash(v1, nil)
h2 := gqlHash(v2, nil)
if strings.Compare(h1, h2) != 0 {
t.Fatal("Hashes don't match they should")
}
}
2019-09-05 06:09:56 +02:00
func TestRelaxHashWithVars1(t *testing.T) {
var q1 = `
products(
limit: 30,
where: { id: { AND: { greater_or_equals: 20, lt: 28 } } }) {
id
name
price
}`
var v1 = `
{
"insert": {
"name": "Hello",
"description": "World",
"created_at": "now",
"updated_at": "now",
"test": { "type2": "b", "type1": "a" }
},
"user": 123
}`
var q2 = `
products
(limit: 30, where: { id: { AND: { greater_or_equals: 20, lt: 28 } } }) {
id
name
price
} `
var v2 = `{
"insert": {
"created_at": "now",
"test": { "type1": "a", "type2": "b" },
"name": "Hello",
"updated_at": "now",
"description": "World"
},
"user": 123
}`
2019-09-05 06:40:52 +02:00
h1 := gqlHash(q1, []byte(v1))
h2 := gqlHash(q2, []byte(v2))
2019-09-05 06:09:56 +02:00
if strings.Compare(h1, h2) != 0 {
t.Fatal("Hashes don't match they should")
}
}
func TestRelaxHashWithVars2(t *testing.T) {
var q1 = `
products(
limit: 30,
where: { id: { AND: { greater_or_equals: 20, lt: 28 } } }) {
id
name
price
}`
var v1 = `
{
"insert": [{
"name": "Hello",
"description": "World",
"created_at": "now",
"updated_at": "now",
"test": { "type2": "b", "type1": "a" }
},
{
"name": "Hello",
"description": "World",
"created_at": "now",
"updated_at": "now",
"test": { "type2": "b", "type1": "a" }
}],
"user": 123
}`
var q2 = `
products
(limit: 30, where: { id: { AND: { greater_or_equals: 20, lt: 28 } } }) {
id
name
price
} `
var v2 = `{
"insert": {
"created_at": "now",
"test": { "type1": "a", "type2": "b" },
"name": "Hello",
"updated_at": "now",
"description": "World"
},
"user": 123
}`
2019-09-05 06:40:52 +02:00
h1 := gqlHash(q1, []byte(v1))
h2 := gqlHash(q2, []byte(v2))
2019-07-30 07:38:05 +02:00
if strings.Compare(h1, h2) != 0 {
t.Fatal("Hashes don't match they should")
}
2019-07-29 07:13:33 +02:00
}