Я отображаю подсказку библиотеки реагирования осколками в моем приложении, и она отлично работает. Однако это вызывает проблемы с моим сборником рассказов и тестовыми файлами. Использование выглядит примерно так:
import {ButtonGroup, Button, Tooltip} from 'shards-react';
...
const [showEditTooltip, setEditTooltip] = useState(false);
...
<ButtonGroup>
<Button
id='editBtn-1233455'
>
<Icon icon={pencil} />
</Button>
<Tooltip
open={showEditTooltip}
target='#editBtn-1233455'
toggle={()=> setEditTooltip(!showEditTooltip)}
>
Edit Application
</Tooltip>
</ButtonGroup>
Теперь, когда я запускаю свои тесты, я получаю эту ошибку в файле сборника рассказов:
FAIL src/views/Dashboard/index.stories.js (6.221s)
● standard
No DOM elements were found for #editBtn-1233455.
20 | ReactDOM.createPortal = jest.fn((element)=> element);
21 | const renderer = require('react-test-renderer');
> 22 | const tree = renderer.create(story).toJSON();
| ^
23 | expect(tree).toMatchSnapshot();
24 | });
25 | };
at getDOMElements (node_modules/shards-react/components/utils.js:38:11)
at getTarget (node_modules/shards-react/components/utils.js:45:19)
at Tooltip.componentDidMount (node_modules/shards-react/components/tooltip/Tooltip.js:34:20)
...
Я также получаю ошибку от тест фермента, который у меня есть для кнопки, к которой прикреплена всплывающая подсказка (которая, по сути, просто отображает элементы, нажимает кнопку и проверяет, был ли вызван onClick
):
FAIL src/components/TableActions/index.test.js
● <TableActions /> › calls goTo with value appId when edit button clicked
TypeError: button.props is not a function
19 |
20 | const button = wrapper.find(Button).first();
> 21 | button.props().onClick();
Похоже, это попытка отобразить всплывающую подсказку, когда кнопка на самом деле не существует, поэтому «цель» всплывающей подсказки равна нулю. Но первоначальная open
опора для всплывающей подсказки неверна, поэтому я не уверен, почему она вызывает эту проблему, когда сборник рассказов просто отображает ее как есть.
Это определенно всплывающая подсказка, вызывающая проблему, удаление означает, что все снова работает Я думал, что проблема с ферментом была в том, что я использовал mount
вместо render
, но это было не так. Любое понимание будет высоко ценится, спасибо.