Перетащите в iframe с помощью кипариса - PullRequest
0 голосов
/ 21 апреля 2020

Я хочу протестировать экземпляр, где я перетаскиваю компонент в iframe. Он должен заменить компонент-заполнитель, на который он попадает, в компонент объектов. Я протестировал его в своей кодовой базе, и это хорошо работает.

it('should allow the user to add multiple features components', () => {
  cy.getIframeBody('builder-showcase').find('[data-cy="features"]').should('have.length', 2);
  cy.get('[data-cy="toolbar-components-button"]').click();
  cy.get('.builder-sidebar-components-features').then(el => {
    const draggable = el[0];
    cy.getIframeBody('builder-showcase').find('[data-cy="placeholder"]').first().then(el => {
      const droppable = el[0];
      const coords = droppable.getBoundingClientRect();
      draggable.dispatchEvent(new MouseEvent('mousemove'));
      draggable.dispatchEvent(new MouseEvent('mousedown'));
      draggable.dispatchEvent(new MouseEvent('mousemove', {clientX: 10, clientY: 0}));
      draggable.dispatchEvent(new MouseEvent('mousemove', {clientX: 226, clientY: 35}));
      draggable.dispatchEvent(new MouseEvent('mouseup'));
      cy.getIframeBody('builder-showcase').find('[data-cy="features"]').should('have.length', 3);
    });
  })
});

Однако, когда я запускаю тест, описанный выше, ничего не происходит. В этой строке тест не пройден:

cy.getIframeBody('builder-showcase').find('[data-cy="features"]').should('have.length', 3);

Должен ли я использовать dragstart, dragover и dragend вместо этого, когда мой iframe обнаружит это (он имеет dragstart, dragover, dragenter и бросьте слушателей). Как бы я реализовал его?

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