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(