0.0.2 • Published 6 years ago
apollo-link-fake v0.0.2
apollo-link-fake
Convenient Apollo mocking
Installation
npm
npm install --save-dev apollo-link-fakeyarn
yarn add --dev apollo-link-fakeUsage
This example is recommended usage which uses FakeQL and a configured GraphQL project. For more advanced usage take a look at the full API reference
With the following schema is configured:
type Query {
user: User!
}
type User {
name: String!
age: Int!
}And this component under test:
const link = new MockLink();
const Component = (): JSX.Element => {
const { loading, data } = useQuery(query);
if (!data || loading) {
return <>Loading…</>;
}
return (
<div>
Hello my name is <span>{data.user.name}</span> and I am{" "}
<span>{data.user.age} years old</span>
</div>
);
};This is an example of a test using apollo-link-fake:
const { getByText } = render(
<MockedProvider addTypename={false} link={link}>
<Component />
</MockedProvider>
);
expect(getByText("Loading…")).toBeInTheDocument();
link.resolveMostRecentOperation((operation) =>
fakeQL({ operation })
);
expect(getByText(`mock-value-for-field-"name"`)).toBeInTheDocument();
expect(getByText("42 years old")).toBeInTheDocument();API reference
Types
Result- is defined asRecord<string, unknown>which translates to any{}.
Methods
pendingOperations- Get all operations executed so far that have not been resolved or rejected.mostRecentOperation- Return the most recent operation. Throws an error when there are no pending operations.resolveMostRecentOperation- Given aResultor a functionOperation => Result, resolves the operation with the providedResult. Throws an error when there are no pending operations.rejectMostRecentOperation- Given aErroror a functionOperation => Error, rejects the operation with the providedError. Throws an error when there are no pending operations.
findOperation- Given a predicate(Operation) -> booleanreturns the first operation for which the predicate is true. Throws an error if no matching operation is found.
PendingOperation
Some methods return a PendingOperation which has the following API:
- resolve - Resolves the operation with the provided
Result - reject - Rejects the operation with the provided
Error