@graphql-hive/federation-gateway-audit
Version:
Audit tool for Apollo Federation Gateway
407 lines (405 loc) • 8.57 kB
text/typescript
import { createTest } from "../../testkit.js";
export default [
createTest(
/* GraphQL */ `
{
users {
id
name
}
accounts {
... on User {
id
name
}
... on Admin {
id
name
}
}
}
`,
{
data: {
users: [
{
id: "u1",
name: "u1-name",
},
],
accounts: [
{
id: "u1",
name: "u1-name",
},
{
id: "a1",
name: "a1-name",
},
],
},
},
),
createTest(
/* GraphQL */ `
query NestedInternalAlias {
users {
id
name
}
accounts {
... on User {
id
name
similarAccounts {
... on User {
id
name
}
... on Admin {
id
name
}
}
}
... on Admin {
id
name
similarAccounts {
... on User {
id
name
}
... on Admin {
id
name
}
}
}
}
}
`,
{
data: {
users: [
{
id: "u1",
name: "u1-name",
},
],
accounts: [
{
id: "u1",
name: "u1-name",
similarAccounts: [
{
id: "u1",
name: "u1-name",
},
{
id: "a1",
name: "a1-name",
},
],
},
{
id: "a1",
name: "a1-name",
similarAccounts: [
{
id: "u1",
name: "u1-name",
},
{
id: "a1",
name: "a1-name",
},
],
},
],
},
},
),
createTest(
/* GraphQL */ `
query DeeplyNestedInternalAlias {
users {
id
name
}
accounts {
... on User {
id
name
similarAccounts {
... on User {
id
name
similarAccounts {
... on User {
id
name
}
... on Admin {
id
name
}
}
}
... on Admin {
id
name
similarAccounts {
... on User {
id
name
}
... on Admin {
id
name
}
}
}
}
}
... on Admin {
id
name
similarAccounts {
... on User {
id
name
similarAccounts {
... on User {
id
name
}
... on Admin {
id
name
}
}
}
... on Admin {
id
name
similarAccounts {
... on User {
id
name
}
... on Admin {
id
name
}
}
}
}
}
}
}
`,
{
data: {
users: [
{
id: "u1",
name: "u1-name",
},
],
accounts: [
{
id: "u1",
name: "u1-name",
similarAccounts: [
{
id: "u1",
name: "u1-name",
similarAccounts: [
{
id: "u1",
name: "u1-name",
},
{
id: "a1",
name: "a1-name",
},
],
},
{
id: "a1",
name: "a1-name",
similarAccounts: [
{
id: "u1",
name: "u1-name",
},
{
id: "a1",
name: "a1-name",
},
],
},
],
},
{
id: "a1",
name: "a1-name",
similarAccounts: [
{
id: "u1",
name: "u1-name",
similarAccounts: [
{
id: "u1",
name: "u1-name",
},
{
id: "a1",
name: "a1-name",
},
],
},
{
id: "a1",
name: "a1-name",
similarAccounts: [
{
id: "u1",
name: "u1-name",
},
{
id: "a1",
name: "a1-name",
},
],
},
],
},
],
},
},
),
createTest(
/* GraphQL */ `
query DeeplyNested {
accounts {
... on User {
name
similarAccounts {
... on User {
name
similarAccounts {
... on User {
name
}
... on Admin {
name
}
}
}
... on Admin {
name
similarAccounts {
... on User {
name
}
... on Admin {
name
}
}
}
}
}
... on Admin {
name
similarAccounts {
... on User {
name
similarAccounts {
... on User {
name
}
... on Admin {
name
}
}
}
... on Admin {
name
similarAccounts {
... on User {
name
}
... on Admin {
name
}
}
}
}
}
}
}
`,
{
data: {
accounts: [
{
name: "u1-name",
similarAccounts: [
{
name: "u1-name",
similarAccounts: [
{
name: "u1-name",
},
{
name: "a1-name",
},
],
},
{
name: "a1-name",
similarAccounts: [
{
name: "u1-name",
},
{
name: "a1-name",
},
],
},
],
},
{
name: "a1-name",
similarAccounts: [
{
name: "u1-name",
similarAccounts: [
{
name: "u1-name",
},
{
name: "a1-name",
},
],
},
{
name: "a1-name",
similarAccounts: [
{
name: "u1-name",
},
{
name: "a1-name",
},
],
},
],
},
],
},
},
),
];