@apollo/core-schema
Version:
Apollo Core Schema processing library
57 lines (47 loc) • 1.83 kB
text/typescript
import { Kind } from "graphql";
import gql from "../gql";
import LinkUrl from "../link-url";
import Schema, { pruneLinks } from "../schema";
import Scope from "../scope";
import raw from "../snapshot-serializers/raw";
describe("view of a schema", () => {
const federation = Schema.basic(gql`${"federation-frame"}
`);
it("creates a schema view with particular names", () => {
const subgraph = Schema.basic(gql`${"subgraph"}
type User {
id: ID!
}
directive on FIELD_DEFINITION
`);
const FED2 = LinkUrl.from("https://specs.apollo.dev/federation/v2.0");
const newScope = Scope.create((scope) => {
const flat = subgraph.scope.flat
for (const link of flat) {
if (link.gref.graph !== FED2) scope.add(link);
}
for (const link of federation.scope) scope.add(link);
});
const output = Schema.from({
kind: Kind.DOCUMENT,
definitions: [
...newScope.renormalizeDefs([...newScope.header(), ...pruneLinks(subgraph)]),
],
});
expect(raw(output.print())).toMatchInlineSnapshot(`
extend schema
type User {
id: ID!
}
directive on FIELD_DEFINITION
`);
});
});