Как утверждать на элементе «атрибут массива» в Jest / Enzyme? - PullRequest
0 голосов
/ 05 июля 2018

У меня есть следующий визуализированный HTML из моего компонента React

<Blueprint2.Select
        disabled={false}
        filterable={false}
        itemRenderer={[Function]}
        items={
          Array [
            "JK",
          ]
        }
        onItemSelect={[MockFunction]}
      >

Я хочу утверждать, что массив внутри элемента items содержит правильный список, то есть просто "JK"

Я пытался

expect(wrapper.find("Blueprint2.Select").find("[items=['JK']").exists()).toEqual(true);  

Но это не работает. Как я могу сделать это утверждение?

ОБНОВЛЕНИЕ: На самом деле даже проверка наличия Blueprint2.Select не удалась

expect(wrapper.find("Blueprint2.Select").exists()).toEqual(true);  

Несмотря на то, что я создал снимок и вижу в нем приведенный выше HTML-код. Существует ли другое соглашение для проверки элемента с именем из двух частей (разделенных точкой)?

1 Ответ

0 голосов
/ 05 июля 2018

Вы должны разбить ваше сложное утверждение на несколько операторов, как и в любом другом программировании:

const expectedItems = ["JK",]
const component = wrapper.find("Blueprint2.Select");
expect(component.exists()).toBeTruthy();

Ключом к написанию ожидания для массива является осознание того, что они передаются как реквизиты. Таким образом, вы можете извлечь нужную вам опору напрямую:

expect(component.props().items).toEqual(expectedItems);

Или, если вы хотите ожидать значения более чем одного реквизита:

expectedProps = {
    items: ['JK',],
    disabled: false,
    filterable: false,
}
expect(compoennt.props()).toMatchObject(expectedProps);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...