Есть ли способ вызвать событие click на span, используя fireEvent в реагирующей тестирующей библиотеке? - PullRequest
0 голосов
/ 15 мая 2019

Я использую компонент выбора ant Design для создания своего пользовательского выбора.Я пытаюсь проверить (используя реагирующую библиотеку), правильно ли выбранный элемент удален после нажатия на значок «x» внутри тега.К сожалению, в тесте элемент не удаляется.Я думаю, что это проблема с элементом «удалить», так как это не кнопка, а интервал (я не могу изменить его, поскольку он встроен где-то внутри компонента выбора дизайна Ant)

Я пыталсяиспользуйте событие щелчка, а также события мыши вниз и вверх, но это не похоже на работу.


const renderMultiselect = () => {
  const { container } = render(
    <I18nextProvider i18n={i18n}>
      <Multiselect
        items={items}
        optionKey="code"
        optionName="name"
        selected={selectedItems}
        testId="types"
        testIdOptionKey="code"
        label="Types"
        onChange={onChange}
      />
    </I18nextProvider>,
  );
  return container;
};

describe('Multiselect', () => {
  it('allows to remove elements', () => {
    const container = renderMultiselect();
    const selected = container.querySelector('.ant-select-selection__rendered ul');
    const removeIcon = selected.firstChild.querySelector('.ant-select-selection__choice__remove');
    fireEvent.mouseDown(removeIcon);
    fireEvent.mouseUp(removeIcon);
    //also tried: fireEvent.click(removeIcon)
  });
});

//that's how the remove 'button' looks inside the DOM
<span class="ant-select-selection__choice__remove">
   <i aria-label="icon: close" class="anticon anticon-close ant-select-remove-icon">
      <svg viewBox="64 64 896 896" class="" data-icon="close" width="1em" height="1em" fill="currentColor" aria-hidden="true" focusable="false">
         <path d="M563.8 512l262.5-312.9c4.4-5.2.7-13.1-6.1-13.1h-79.8c-4.7 0-9.2 2.1-12.3 5.7L511.6 449.8 295.1 191.7c-3-3.6-7.5-5.7-12.3-5.7H203c-6.8 0-10.5 7.9-6.1 13.1L459.4 512 196.9 824.9A7.95 7.95 0 0 0 203 838h79.8c4.7 0 9.2-2.1 12.3-5.7l216.5-258.1 216.5 258.1c3 3.6 7.5 5.7 12.3 5.7h79.8c6.8 0 10.5-7.9 6.1-13.1L563.8 512z"></path>
      </svg>
   </i>
</span>

Ожидаемый результат - запуск события, которое удалит первый элемент внутри мультиселекции из выбранных элементов.Вот как выглядит компонент Ant Design Select: https://codepen.io/pen/?&editable=true&editors=001

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...