Как выполнить тестирование с помощью Relay modern с помощью jest и enzyme?

#reactjs #graphql #jestjs #enzyme #relaymodern

#reactjs #graphql #jestjs #enzyme #relaymodern

Вопрос:

Как протестировать этот файл с помощью jest и enzyme…

    

class App extends React.Component{
    constructor(){
        super()
    }

    render(){
        const { viewer, children, isLoading } = this.props
        return(
          <div>
              <div id="container">
                {children}
              </div>
              {isLoading amp;amp; <Loading />}
          </div>  
        );
    }
}

export default createFragmentContainer(
    App,
    graphql`
        fragment App_viewer on User{
            id
            email   
        }
    `
)  

Ответ №1:

Вы можете сделать что-то вроде этого

 const React = require('React');
const App = require('App.react');
jest.mock('react-relay', () => ({
  createFragmentContainer: App =>
    App,
}));

const {shallow} = require('enzyme');
const {shallowToJson} = require('enzyme-to-json');

describe('App', () => {
  it('renders the dashboard section correctly', () => {
    const wrapper = shallow(
      < App
        title="Test Dashboard Section"
        charts={[]}
      />,
    );
    expect(shallowToJson(wrapper)).toMatchSnapshot();
  });
  

Нам нужно смоделировать react-relay. Как упоминалось выше.