UNPKG

@graphql-hive/federation-gateway-audit

Version:
164 lines (151 loc) 2.65 kB
import { c as createSubgraph, a as createTest, s as serve } from './testkit-BtZjdl4n.js'; import '@apollo/composition'; import 'graphql'; import 'fets'; import '@apollo/subgraph'; import 'graphql-yoga'; const users = [ { id: "u1", name: "u1-name" }, { id: "u2", name: "u2-name" } ]; var a = createSubgraph("a", { typeDefs: ( /* GraphQL */ ` extend schema @link( url: "https://specs.apollo.dev/federation/v2.3" import: ["@key", "@shareable"] ) input UsersFilter { first: Int! } type User @key(fields: "id") { id: ID! name: String! @shareable } type Query { usersInA(filter: UsersFilter!): [User!] } ` ), resolvers: { Query: { usersInA(_, { filter }) { if ("offset" in filter) { return []; } return users; } }, User: { __resolveReference(key) { const user = users.find((user2) => user2.id === key.id); if (!user) { return null; } return user; } } } }); var b = createSubgraph("b", { typeDefs: ( /* GraphQL */ ` extend schema @link( url: "https://specs.apollo.dev/federation/v2.3" import: ["@key", "@shareable"] ) input UsersFilter { offset: Int first: Int! } type User @key(fields: "id") { id: ID! name: String! @shareable } type Query { usersInB(filter: UsersFilter!): [User!] } ` ), resolvers: { Query: { usersInB(_, { filter }) { if ("offset" in filter) { return []; } return users; } }, User: { __resolveReference(key) { const user = users.find((user2) => user2.id === key.id); if (!user) { return null; } return user; } } } }); var test = [ createTest( /* GraphQL */ ` query { usersInA(filter: { first: 1 }) { id } } `, { data: { usersInA: [ { id: "u1" }, { id: "u2" } ] } } ), createTest( /* GraphQL */ ` query { usersInA(filter: { first: 1, offset: 2 }) { id } } `, { errors: true } ), createTest( /* GraphQL */ ` query { usersInB(filter: { first: 1, offset: 2 }) { id } } `, { errors: true } ) ]; var index = serve("input-object-intersection", [a, b], test); export { index as default };