summaryrefslogtreecommitdiff
path: root/app/assets/javascripts/work_items/graphql/provider.js
blob: 28328a840cf0d52fc8e537278af20cd479c738fd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
import Vue from 'vue';
import VueApollo from 'vue-apollo';
import createDefaultClient from '~/lib/graphql';
import workItemQuery from './work_item.query.graphql';
import { resolvers } from './resolvers';
import typeDefs from './typedefs.graphql';

export function createApolloProvider() {
  Vue.use(VueApollo);

  const defaultClient = createDefaultClient(resolvers, {
    typeDefs,
    cacheConfig: {
      possibleTypes: {
        LocalWorkItemWidget: ['LocalTitleWidget'],
      },
    },
  });

  defaultClient.cache.writeQuery({
    query: workItemQuery,
    variables: {
      id: 'gid://gitlab/WorkItem/1',
    },
    data: {
      localWorkItem: {
        __typename: 'LocalWorkItem',
        id: 'gid://gitlab/WorkItem/1',
        type: 'FEATURE',
        // eslint-disable-next-line @gitlab/require-i18n-strings
        title: 'Test Work Item',
        widgets: {
          __typename: 'LocalWorkItemWidgetConnection',
          nodes: [],
        },
      },
    },
  });

  return new VueApollo({
    defaultClient,
  });
}