UNPKG

3.37 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3var tslib_1 = require("tslib");
4var fragmentMatcher_1 = require("../fragmentMatcher");
5var objectCache_1 = require("../objectCache");
6var inMemoryCache_1 = require("../inMemoryCache");
7var graphql_tag_1 = tslib_1.__importDefault(require("graphql-tag"));
8describe('FragmentMatcher', function () {
9 it('can match against the root Query', function () {
10 var cache = new inMemoryCache_1.InMemoryCache({
11 addTypename: true,
12 });
13 var query = graphql_tag_1.default(templateObject_1 || (templateObject_1 = tslib_1.__makeTemplateObject(["\n query AllPeople {\n people {\n id\n name\n }\n ...PeopleTypes\n }\n fragment PeopleTypes on Query {\n __type(name: \"Person\") {\n name\n kind\n }\n }\n "], ["\n query AllPeople {\n people {\n id\n name\n }\n ...PeopleTypes\n }\n fragment PeopleTypes on Query {\n __type(name: \"Person\") {\n name\n kind\n }\n }\n "])));
14 var data = {
15 people: [
16 {
17 __typename: 'Person',
18 id: 123,
19 name: 'Ben',
20 },
21 ],
22 __type: {
23 __typename: '__Type',
24 name: 'Person',
25 kind: 'OBJECT',
26 },
27 };
28 cache.writeQuery({ query: query, data: data });
29 expect(cache.readQuery({ query: query })).toEqual(data);
30 });
31});
32describe('IntrospectionFragmentMatcher', function () {
33 it('will throw an error if match is called if it is not ready', function () {
34 var ifm = new fragmentMatcher_1.IntrospectionFragmentMatcher();
35 expect(function () { return ifm.match(); }).toThrowError(/called before/);
36 });
37 it('can be seeded with an introspection query result', function () {
38 var ifm = new fragmentMatcher_1.IntrospectionFragmentMatcher({
39 introspectionQueryResultData: {
40 __schema: {
41 types: [
42 {
43 kind: 'UNION',
44 name: 'Item',
45 possibleTypes: [
46 {
47 name: 'ItemA',
48 },
49 {
50 name: 'ItemB',
51 },
52 ],
53 },
54 ],
55 },
56 },
57 });
58 var store = objectCache_1.defaultNormalizedCacheFactory({
59 a: {
60 __typename: 'ItemB',
61 },
62 });
63 var idValue = {
64 type: 'id',
65 id: 'a',
66 generated: false,
67 };
68 var readStoreContext = {
69 store: store,
70 returnPartialData: false,
71 hasMissingField: false,
72 cacheRedirects: {},
73 };
74 expect(ifm.match(idValue, 'Item', readStoreContext)).toBe(true);
75 expect(ifm.match(idValue, 'NotAnItem', readStoreContext)).toBe(false);
76 });
77});
78var templateObject_1;
79//# sourceMappingURL=fragmentMatcher.js.map
\No newline at end of file