I am trying to test react-relay for GraphQL using the (incomplete) guide at https://relay.dev/docs/en/testing-relay-components#fragment-container-tests.
I have the following:
'use strict';
import React from 'react';
import { QueryRenderer, graphql } from 'react-relay';
import ReactTestRenderer from 'react-test-renderer';
//const ReactTestRenderer = require('react-test-renderer'); // same error
//import { create } from "react-test-renderer"; // same error
const {
createMockEnvironment,
MockPayloadGenerator,
} = require('relay-test-utils');
it('Fragment Container', () => {
const environment = createMockEnvironment();
const TestRenderer = () => (
<QueryRenderer
environment={environment}
query={graphql`
query TestQuery @relay_test_operation {
myData: node(id: "test-id") {
...MyFragment
}
}
`}
variables=
render={({error, props}) => {
if (props) {
return <MyFragmentContainer myData={props.myData} />;
} else if (error) {
return error.message;
}
return 'Loading...';
}}
/>
);
const renderer = ReactTestRenderer.create(<TestRenderer />);
environment.mock.resolveMostRecentOperation(operation =>
MockPayloadGenerator.generate(operation),
);
expect(renderer).toMatchSnapshot();
});
I'm not really sure where I'm going wrong and am new to React, React-Relay and GraphQL. I get: TypeError: Cannot read property 'getRequest' of undefined on the line for const renderer = ReactTestRenderer.create(<TestRenderer />);. I've tried to change the way I've imported ReactTestRenderer as suggested here but still get the same error. I installed react-test-renderer via npm i react-test-renderer
Aucun commentaire:
Enregistrer un commentaire