diff --git a/Changelog.md b/Changelog.md
index ac746fb2ae..2486d3670a 100644
--- a/Changelog.md
+++ b/Changelog.md
@@ -24,6 +24,9 @@
to see if any query errors have occurred. A better (and supported) way to
check for errors is to use the result `errors` property.
[@TLadd](https://github.com/TLadd) in [#1983](https://github.com/apollographql/react-apollo/pull/1983)
+- Allow a custom `cache` object to be passed into the test-utils
+ `MockedProvider`.
+ [@palmfjord](https://github.com/palmfjord) in [#2254](https://github.com/apollographql/react-apollo/pull/2254)
## 2.1.11 (August 9, 2018)
diff --git a/src/test-utils.tsx b/src/test-utils.tsx
index 2a24e9b355..66e94905de 100644
--- a/src/test-utils.tsx
+++ b/src/test-utils.tsx
@@ -5,12 +5,14 @@ import { InMemoryCache as Cache } from 'apollo-cache-inmemory';
import { ApolloProvider } from './index';
import { MockedResponse, MockLink } from './test-links';
+import { ApolloCache } from 'apollo-cache';
export * from './test-links';
-export interface MockedProviderProps {
+export interface MockedProviderProps {
mocks?: MockedResponse[];
addTypename?: boolean;
defaultOptions?: DefaultOptions;
+ cache?: ApolloCache;
}
export interface MockedProviderState {
@@ -25,9 +27,9 @@ export class MockedProvider extends React.Component {
);
});
+it('allows for using a custom cache', done => {
+ const cache = new InMemoryCache();
+ cache.writeQuery({
+ query,
+ variables,
+ data: { user },
+ });
+
+ const Container: React.SFC> = props => {
+ expect(props.data).toMatchObject({ user });
+ done();
+
+ return null;
+ };
+ const ContainerWithData = withUser(Container);
+ renderer.create(
+
+
+ ,
+ );
+});
+
it('errors if the variables in the mock and component do not match', done => {
class Container extends React.Component> {
componentWillReceiveProps(nextProps: ChildProps) {
@@ -317,6 +339,7 @@ it('doesnt crash on unmount if there is no query manager', () => {
return null;
}
}
+
renderer
.create(