Files
releases/v1/test/cases/testdata/v1/graphql/test-graphql-basic-ast.yaml
T
Johan Fylling 2691499f80 build(deps): github.com/vektah/gqlparser/v2 from 2.5.30 to 2.5.31
Fixing tests broken by new `ExpectedTypeHasDefault` field.

Signed-off-by: Johan Fylling <johan.dev@fylling.se>
2025-11-10 10:06:21 +01:00

269 lines
6.1 KiB
YAML

---
cases:
- note: graphql_parse_query/success-basic-ast simple query
query: data.test.p = x
modules:
- |
package test
ast := {"Operations": [{
"Name": "",
"Operation": "query",
"SelectionSet": [{
"Alias": "hero",
"Name": "hero",
"SelectionSet": [{
"Alias": "name",
"Name": "name",
}],
}],
}]}
p if {
graphql.parse_query("{hero {name}}") == ast
}
want_result:
- x: true
- note: graphql_parse_query/success-basic-ast with arguments
query: data.test.p = x
modules:
- |
package test
gql := `query hero ($episode: Episode!) {
hero (episode: $episode) {
id
name
friends {
id
name
friends {
id
name
appearsIn
}
appearsIn
}
appearsIn
}
}`
ast := {"Operations": [{
"Name": "hero",
"Operation": "query",
"SelectionSet": [{
"Alias": "hero",
"Arguments": [{
"Name": "episode",
"Value": {
"ExpectedTypeHasDefault": false,
"Kind": 0,
"Raw": "episode",
},
}],
"Name": "hero",
"SelectionSet": [
{
"Alias": "id",
"Name": "id",
},
{
"Alias": "name",
"Name": "name",
},
{
"Alias": "friends",
"Name": "friends",
"SelectionSet": [
{
"Alias": "id",
"Name": "id",
},
{
"Alias": "name",
"Name": "name",
},
{
"Alias": "friends",
"Name": "friends",
"SelectionSet": [
{
"Alias": "id",
"Name": "id",
},
{
"Alias": "name",
"Name": "name",
},
{
"Alias": "appearsIn",
"Name": "appearsIn",
},
],
},
{
"Alias": "appearsIn",
"Name": "appearsIn",
},
],
},
{
"Alias": "appearsIn",
"Name": "appearsIn",
},
],
}],
"VariableDefinitions": [{
"Type": {
"NamedType": "Episode",
"NonNull": true,
},
"Used": false,
"Variable": "episode",
}],
}]}
p if {
graphql.parse_query(gql) == ast
}
want_result:
- x: true
- note: graphql_parse_query/success-basic-ast inline fragments and type conditions
query: data.test.p = x
modules:
- |
package test
gql := `query HeroForEpisode($ep: Episode!) {
hero(episode: $ep) {
name
... on Droid {
primaryFunction
}
... on Human {
height
}
}
}`
ast := {"Operations": [{
"Name": "HeroForEpisode",
"Operation": "query",
"SelectionSet": [{
"Alias": "hero",
"Arguments": [{
"Name": "episode",
"Value": {
"ExpectedTypeHasDefault": false,
"Kind": 0,
"Raw": "ep",
},
}],
"Name": "hero",
"SelectionSet": [
{
"Alias": "name",
"Name": "name",
},
{
"SelectionSet": [{
"Alias": "primaryFunction",
"Name": "primaryFunction",
}],
"TypeCondition": "Droid",
},
{
"SelectionSet": [{
"Alias": "height",
"Name": "height",
}],
"TypeCondition": "Human",
},
],
}],
"VariableDefinitions": [{
"Type": {
"NamedType": "Episode",
"NonNull": true,
},
"Used": false,
"Variable": "ep",
}],
}]}
p if {
graphql.parse_query(gql) == ast
}
want_result:
- x: true
- note: graphql_parse_query/success-basic-ast meta fields and introspection
query: data.test.p = x
modules:
- |
package test
gql := `{
search(text: "an") {
__typename
... on Human {
name
}
... on Droid {
name
}
... on Starship {
name
}
}
}`
ast := {"Operations": [{
"Name": "",
"Operation": "query",
"SelectionSet": [{
"Alias": "search",
"Arguments": [{
"Name": "text",
"Value": {
"ExpectedTypeHasDefault": false,
"Kind": 3,
"Raw": "an",
},
}],
"Name": "search",
"SelectionSet": [
{
"Alias": "__typename",
"Name": "__typename",
},
{
"SelectionSet": [{
"Alias": "name",
"Name": "name",
}],
"TypeCondition": "Human",
},
{
"SelectionSet": [{
"Alias": "name",
"Name": "name",
}],
"TypeCondition": "Droid",
},
{
"SelectionSet": [{
"Alias": "name",
"Name": "name",
}],
"TypeCondition": "Starship",
},
],
}],
}]}
p if {
graphql.parse_query(gql) == ast
}
want_result:
- x: true