Крепление фермента ничего не отображает

#javascript #reactjs #jestjs #enzyme

#javascript #reactjs #jestjs #фермент

Вопрос:

Enzyme mount не отображает компонент. Есть и другие компоненты с контекстом, но это единственный компонент, с которым у меня возникают проблемы при тестировании.

 //LoginForm.js
class LoginForm extends React.Component {
    //...
    render() {
        return (
            <AuthContext.Consumer>
                {(context) => (
                    <>
                        {!context.user amp;amp; 
                            //stuff
                        }
                        {context.configurationCompleted amp;amp; 
                        <>
                            //stuff
                        </>
                        }
                    </>
                )}
            </AuthContext.Consumer>);
    }
}
 
 //LoginForm.test.js

describe('LoginForm', ()=>{
    let component;
    beforeAll(()=>{
        component = mount(
            <LoginForm/>, {context: {user: undefined, configurationCompleted: false}}
        );
    });
    test('works', ()=>{
        console.log(component.debug());
    });
});
 

Вывод:
<LoginForm />

Я просто хочу отобразить часть ниже!context.user

Ответ №1:

Я полагаю, что были некоторые проблемы с монтированием фермента с использованием options.context (проверьте, используете ли вы обновленную версию). Однако вы можете просто использовать классический поставщик контекста для ввода значения:

 it("displays the result", () => {
    const component = mount(
        <AuthContext.Provider value={{ context: { user: undefined, configurationCompleted: false } }}>
            <LoginForm />
        </AuthContext.Provider>
    );
    expect(component).toMatchSnapshot();
 });