Jest-тест с использованием act-test-renderer вставляет неопределенное значение атрибута в DOM
Я кратко попытался найти это в исходном коде реагировать-тестировать-рендерер, но не смог найти его.
Напомним, что в React атрибуты элементов компонента, значения которых undefined
не отображаются в DOM. Т.е. дано bat = undefined
а также <Foo bar={bat} />
, bar
атрибут не появится в сгенерированном HTML.
Я предполагаю, что это ожидаемое поведение, но я запутался, почему, когда дополнительный атрибут компонента появляется в дереве JSON в снимке Jest - если снимок просто подтверждает, что свойство не указано (ws-automation-id
является необязательным свойством компонента, которое не имеет defaultProps
запись определена):
exports[`the <TextButton/> component should use the specified class names 1`] = `
<button
className="gc-icon test-class1 test-class2"
onClick={[Function]}
ws-automation-id={undefined}
>
Button Text
</button>
`;
Дано
test('should use the specified class names', () => {
const tree = create(<TextButton buttonText="Button Text" onClick={null} classNames={['test-class1', 'test-class2']} />).toJSON()
expect(tree).toMatchSnapshot()
})
2 ответа
Я забыл опубликовать версию, которая использовалась на момент публикации. Эта проблема была исправлена, однако, неясно, какая именно версия.
Это ожидается.
По сути, этот пакет позволяет легко получить снимок иерархии представления платформы (аналогично дереву DOM), отображаемой компонентом React DOM или React Native, без использования браузера - React Test Renderer
Это не совсем дерево DOM, которое вы увидите при просмотре в браузере, скорее объект javascript, представляющий нечто подобное.