@graphql-hive/federation-gateway-audit
Version:
Audit tool for Apollo Federation Gateway
274 lines (260 loc) • 4.45 kB
JavaScript
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"
},
{
id: "u3",
name: "u3-name"
}
];
var a = createSubgraph("a", {
typeDefs: (
/* GraphQL */
`
extend schema
type User {
id: ID!
name: String!
aName: String!
}
type Query {
userInA: User
}
`
),
resolvers: {
Query: {
userInA() {
return users[0];
}
},
User: {
__resolveReference(key) {
const user = users.find((u) => u.id === key.id);
if (!user) {
return null;
}
if ("name" in key) {
return {
id: user.id,
name: user.name
};
}
return {
id: user.id
};
},
aName(user) {
return `a__${user.name}`;
},
name() {
return "NEVER";
}
}
}
});
var b = createSubgraph("b", {
typeDefs: (
/* GraphQL */
`
extend schema
type User {
id: ID!
name: String!
}
type Query {
userInB: User
}
`
),
resolvers: {
Query: {
userInB() {
return users[1];
}
},
User: {
__resolveReference(key) {
const user = users.find((u) => u.id === key.id);
if (!user) {
return null;
}
return {
id: user.id,
name: user.name
};
}
}
}
});
var c = createSubgraph("c", {
typeDefs: (
/* GraphQL */
`
extend schema
type User {
id: ID!
name: String!
cName: String!
}
type Query {
userInC: User
}
`
),
resolvers: {
Query: {
userInC() {
return users[2];
}
},
User: {
__resolveReference(key) {
const user = users.find((u) => u.id === key.id);
if (!user) {
return null;
}
if ("name" in key) {
return {
id: user.id,
name: user.name
};
}
return {
id: user.id
};
},
name() {
return "NEVER";
},
cName(user) {
return `c__${user.name}`;
}
}
}
});
var test = [
createTest(
/* GraphQL */
`
{
userInA {
id
name
aName
cName
}
userInB {
id
name
aName
cName
}
userInC {
id
name
aName
cName
}
}
`,
{
data: {
userInA: {
id: "u1",
name: "u1-name",
aName: "a__u1-name",
cName: "c__u1-name"
},
userInB: {
id: "u2",
name: "u2-name",
aName: "a__u2-name",
cName: "c__u2-name"
},
userInC: {
id: "u3",
name: "u3-name",
aName: "a__u3-name",
cName: "c__u3-name"
}
}
}
),
createTest(
/* GraphQL */
`
query {
userInC {
cName
}
}
`,
{
data: {
userInC: {
cName: "c__u3-name"
}
}
}
),
createTest(
/* GraphQL */
`
query {
userInA {
cName
}
}
`,
{
data: {
userInA: {
cName: "c__u1-name"
}
}
}
),
createTest(
/* GraphQL */
`
query {
userInA {
aName
}
}
`,
{
data: {
userInA: {
aName: "a__u1-name"
}
}
}
)
];
var index = serve("override-with-requires", [a, b, c], test);
export { index as default };