1 | "use strict";
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | var tslib_1 = require("tslib");
|
4 | var fragmentMatcher_1 = require("../fragmentMatcher");
|
5 | var objectCache_1 = require("../objectCache");
|
6 | var inMemoryCache_1 = require("../inMemoryCache");
|
7 | var graphql_tag_1 = tslib_1.__importDefault(require("graphql-tag"));
|
8 | describe('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 | });
|
32 | describe('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 | });
|
78 | var templateObject_1;
|
79 |
|
\ | No newline at end of file |