.contains(nodeOrNodes) => Boolean
Возвращает значение, указывающее, совпадают ли все заданные элементы React с элементами в дереве отрисовки. Он определяет, соответствует ли элемент в обёртке ожидаемому элементу, проверяя, имеют ли ожидаемый элемент и элемент обёртки одинаковые свойства и одинаковые значения.
Аргументы
-
nodeOrNodes(ReactElement|Array<ReactElement>): Узел или массив узлов, присутствие которых вы определяете в дереве отрисовки текущего экземпляра.
Возвращает
Boolean: содержит ли текущая обёртка узлы в своём дереве отрисовки, которые совпадают с переданными.
Пример
const wrapper = mount((
<div>
<div data-foo="foo" data-bar="bar">Hello</div>
</div>
));
expect(wrapper.contains(<div data-foo="foo" data-bar="bar">Hello</div>)).to.equal(true);
expect(wrapper.contains(<div data-foo="foo">Hello</div>)).to.equal(false);
expect(wrapper.contains(<div data-foo="foo" data-bar="bar" data-baz="baz">Hello</div>)).to.equal(false);
expect(wrapper.contains(<div data-foo="foo" data-bar="Hello">Hello</div>)).to.equal(false);
expect(wrapper.contains(<div data-foo="foo" data-bar="bar" />)).to.equal(false);
const wrapper = mount((
<div>
<span>Hello</span>
<div>Goodbye</div>
<span>Again</span>
</div>
));
expect(wrapper.contains([
<span>Hello</span>,
<div>Goodbye</div>,
])).to.equal(true);
expect(wrapper.contains([
<span>Hello</span>,
<div>World</div>,
])).to.equal(false);
Общие ошибки
-
.contains()ожидает ReactElement, а не селектор (как и многие другие методы). Убедитесь, что при вызове вы используете ReactElement или JSX-выражение. - Учитывайте, что этот метод определяет равенство на основе равенства дочерних элементов узла.
- Каждое свойство обернутого элемента должно совпадать с элементом, который вы проверяете. Чтобы разрешить (и игнорировать) дополнительные свойства на обёрнутом элементе, используйте containsMatchingElement() вместо этого.
© 2015 Airbnb, Inc.
Licensed under the MIT License.
https://enzymejs.github.io/enzyme/docs/api/ReactWrapper/contains.html