UNPKG

@graphql-hive/federation-gateway-audit

Version:
368 lines (366 loc) 5.83 kB
import { createTest } from "../../testkit.js"; export default [ createTest( /* GraphQL */ ` query { anotherUsers { id name username } } `, { data: { anotherUsers: [ { id: "u1", name: "u1-name", username: "u1-username", }, { id: "u2", name: "u2-name", username: "u2-username", }, ], }, }, ), createTest( /* GraphQL */ ` query { users { id name username } } `, { data: { users: [ { id: "u1", name: "u1-name", username: "u1-username", }, { id: "u2", name: "u2-name", username: "u2-username", }, ], }, }, ), createTest( /* GraphQL */ ` query { anotherUsers { ... on User { age } } } `, { data: { anotherUsers: [ { age: 11, }, { age: 22, }, ], }, }, ), createTest( /* GraphQL */ ` query { users { ... on User { age } } } `, { data: { users: [ { age: 11, }, { age: 22, }, ], }, }, ), createTest( /* GraphQL */ ` query { anotherUsers { ... on User { age id name username } id name } } `, { data: { anotherUsers: [ { age: 11, id: "u1", name: "u1-name", username: "u1-username", }, { age: 22, id: "u2", name: "u2-name", username: "u2-username", }, ], }, }, ), createTest( /* GraphQL */ ` query { users { ... on User { age id name username } id name } } `, { data: { users: [ { age: 11, id: "u1", name: "u1-name", username: "u1-username", }, { age: 22, id: "u2", name: "u2-name", username: "u2-username", }, ], }, }, ), createTest( /* GraphQL */ ` query { users { ... on User { age id name username } id name } } `, { data: { users: [ { age: 11, id: "u1", name: "u1-name", username: "u1-username", }, { age: 22, id: "u2", name: "u2-name", username: "u2-username", }, ], }, }, ), createTest( /* GraphQL */ ` query { accounts { name } } `, { data: { accounts: [ { name: "Alice", }, { name: "Bob", }, { name: "Charlie", }, ], }, }, ), createTest( /* GraphQL */ ` query { accounts { ... on Admin { name } } } `, { data: { accounts: [ { name: "Alice", }, { name: "Bob", }, {}, ], }, }, ), createTest( /* GraphQL */ ` query { accounts { name # NOTE # __typename is not available in the interfaceObject, needs to be resolved indirectly __typename } } `, { data: { accounts: [ { name: "Alice", __typename: "Admin", }, { name: "Bob", __typename: "Admin", }, { name: "Charlie", __typename: "Regular", }, ], }, }, ), createTest( /* GraphQL */ ` query { accounts { ... on Admin { __typename } } } `, { data: { accounts: [ { __typename: "Admin", }, { __typename: "Admin", }, {}, ], }, }, ), createTest( /* GraphQL */ ` query { accounts { id isActive } } `, { data: { accounts: [ { id: "u1", isActive: false, }, { id: "u2", isActive: false, }, { id: "u3", isActive: false, }, ], }, }, ), createTest( /* GraphQL */ ` query { accounts { # NOTE # id is available in the interfaceObject and can be resolved as there's no type condition involved id ... on Admin { isActive } } } `, { data: { accounts: [ { id: "u1", isActive: true, }, { id: "u2", isActive: true, }, { id: "u3", }, ], }, }, ), ];