mirror of
https://github.com/open-policy-agent/opa.git
synced 2026-08-12 19:32:48 -06:00
2691499f80
Fixing tests broken by new `ExpectedTypeHasDefault` field. Signed-off-by: Johan Fylling <johan.dev@fylling.se>
269 lines
6.1 KiB
YAML
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
|