У меня есть следующий файл .jsx, который возвращает от него клиентский объект apollo:
import { createAppSyncLink } from "aws-appsync";
import { ApolloClient } from "apollo-client";
import { InMemoryCache } from "apollo-cache-inmemory";
import { ApolloLink } from "apollo-link";
import { appSyncConfig } from "./client/AwsConfig";
import { fragmentMatcher } from "./client/apollo-cache";
// AppSync link
const awsAppSyncLink = createAppSyncLink({
url: appSyncConfig.graphqlEndpoint,
region: appSyncConfig.region,
auth: {
type: appSyncConfig.authenticationType,
apiKey: appSyncConfig.apiKey
}
});
const links = [awsAppSyncLink];
const apolloLink = ApolloLink.from(links);
export default new ApolloClient({
cache: new InMemoryCache({ fragmentMatcher }),
link: apolloLink
});
Теперь я пытаюсь запустить тест для этого файла следующим образом, используя jest:
import { createAppSyncLink } from "aws-appsync";
import { ApolloLink } from "apollo-link";
jest.mock("aws-appsync");
jest.mock("apollo-link");
describe("GraphQL client", () => {
it("should create a client", () => {
const client = require("../src/a").default;
console.log(client);
expect(client).toBeDefined();
});
});
Но я получаю следующую ошибку:
FAIL tst / a.test. js ● Клиент GraphQL ›должен создать клиент
Invariant Violation: In order to initialize Apollo Client, you must specify 'link' and 'cache' properties in the options object.
These options are part of the upgrade requirements when migrating from Apollo Client 1.x to Apollo Client 2.x.
For more information, please visit: https://www.apollographql.com/docs/tutorial/client.html#apollo-client-setup
26 | const apolloLink = ApolloLink.from(links);
27 |
> 28 | export default new ApolloClient({
| ^
29 | cache: new InMemoryCache({ fragmentMatcher }),
30 | link: apolloLink
31 | });
at new InvariantError (node_modules/ts-invariant/lib/invariant.esm.js:12:28)
at new ApolloClient (node_modules/apollo-client/bundle.umd.js:2484:92)
at Object.<anonymous> (src/a.jsx:28:16)
at Object.<anonymous> (tst/a.test.js:10:24)
Я довольно новичок в тестировании в Javascript и использовании шутки. Если кто-то может помочь мне в написании контрольного примера для этого файла, было бы здорово, и как вы об этом go?