apollographql / react-apollo

:recycle: React integration for Apollo Client
https://www.apollographql.com/docs/react/
MIT License
6.85k stars 790 forks source link

MockedProvider not working correctly #4033

Open romainleduc opened 4 years ago

romainleduc commented 4 years ago

Hello, the MockedProvider class not working correctly for me.

Example with MockedProvider:

describe('SignupForm', () => {
    test('renders without error', () => {
        renderer.create(
            <MockedProvider mocks={[]}>
              <SignupForm onValidation={() => console.log('redirect')} />
            </MockedProvider>,
          );
    });
});

I get the following error:

  ● SignupForm › renders without error

    Invariant Violation: Could not find "client" in the context or passed in as an option. Wrap the root component in an <ApolloProvider>, or pass an ApolloClient instance in via o
ptions.

Example with bad pratice:

describe('SignupForm', () => {
    test('renders without error', () => {
        renderer.create(
            <ApolloProvider client={client}>
                <SignupForm onValidation={() => console.log('redirect')} />
            </ApolloProvider>
        );
    });
});

it works

My reactDOM render:

ReactDOM.render(
    <ApolloProvider client={client}>
        <CookiesProvider>
            <UserAuthProvider>
                <Router>
                    <Routes />
                </Router>
            </UserAuthProvider>
        </CookiesProvider>
    </ApolloProvider>,
    document.getElementById('root')
);

Thanks for you help :)

manoelneto commented 4 years ago

@KiziKr were you able to solve it?