#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();
});