У меня возникли проблемы с тестированием компонентов, использующих реагирующую пружину с помощью имитации реактивной пружины для Jest.
Для этого добавьте это в конфигурацию Jest:
[...]
"moduleNameMapper": {
"^react-spring(.*)$": "<rootDir>/jest/react-spring-mock.js"
},
Файл /jest/react-spring-mock.js
может выглядеть следующим образом:
const React = require('react');
function renderPropsComponent(children) {
return React.createElement('div', null, children()({}));
}
export function Spring(props) {
return renderPropsComponent(props.children);
};
export function Trail(props) {
return renderPropsComponent(props.children);
};
export function Transition(props) {
return renderPropsComponent(props.children);
};
export function Keyframes(props) {
return renderPropsComponent(props.children);
};
export function Parallax(props) {
return renderPropsComponent(props.children);
};
export const animated = {
div: (props) => {
return React.createElement('div', null, props.children)
},
};
Примечание: эти макеты ориентированы на API рендеринга реквизита реактивной пружины.Кроме того, эта техника приведет к игнорированию всего, что обычно генерируется реагирующей пружиной в ваших тестах.(Вместо этого будет создан контейнер <div>
.)