diff options
Diffstat (limited to 'spec/frontend/__helpers__/mock_apollo_helper.js')
-rw-r--r-- | spec/frontend/__helpers__/mock_apollo_helper.js | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/spec/frontend/__helpers__/mock_apollo_helper.js b/spec/frontend/__helpers__/mock_apollo_helper.js index ee4bbd42b1e..c07a6d8ef85 100644 --- a/spec/frontend/__helpers__/mock_apollo_helper.js +++ b/spec/frontend/__helpers__/mock_apollo_helper.js @@ -1,22 +1,25 @@ -import { InMemoryCache } from 'apollo-cache-inmemory'; +import { InMemoryCache } from '@apollo/client/core'; import { createMockClient as createMockApolloClient } from 'mock-apollo-client'; import VueApollo from 'vue-apollo'; - -const defaultCacheOptions = { - fragmentMatcher: { match: () => true }, - addTypename: false, -}; +import possibleTypes from '~/graphql_shared/possibleTypes.json'; +import { typePolicies } from '~/lib/graphql'; export function createMockClient(handlers = [], resolvers = {}, cacheOptions = {}) { const cache = new InMemoryCache({ - ...defaultCacheOptions, + possibleTypes, + typePolicies, + addTypename: false, ...cacheOptions, }); const mockClient = createMockApolloClient({ cache, resolvers }); if (Array.isArray(handlers)) { - handlers.forEach(([query, value]) => mockClient.setRequestHandler(query, value)); + handlers.forEach(([query, value]) => + mockClient.setRequestHandler(query, (...args) => + Promise.resolve(value(...args)).then((r) => ({ ...r })), + ), + ); } else { throw new Error('You should pass an array of handlers to mock Apollo client'); } |