У меня есть страница с несколькими панелями результатов, каждая панель имеет свою собственную кнопку удаления, как только пользователь нажимает кнопку удаления, появляется модальное подтверждение, спрашивающее, хочет ли он удалить эту запись.
Я написалCypress-тест для проверки процесса удаления, тест работает должным образом, модальное окно появляется, если пользователь подтверждает удаление, панель удаляется.
В тесте я проверяю, что правильная панель была удаленапроверяя, не существует ли его id
на странице.
const deleteResult = action => {
cy.get('div[data-test="Results"]').should('be.visible');
let contactID;
cy.get('div[data-test="Results"]')
.first()
.within(() => {
cy.get('p[data-test="Contact ID"]').then($match => {
contactID= $match.html();
cy.get('button[data-test="Delete Contact"]')
.click()
.get('div[data-test="Delete Record Modal"]')
.should('be.visible')
.get(`button[data-test="${action}"]`)
.click();
});
});
cy.get('p[data-test="Contact ID"]').each($match => {
cy.wait(2000);
if (action === 'Confirm Deletion') {
cy.wrap($match)
.invoke('text')
.should('not.eq', contactID);
} else {
cy.wrap($match)
.invoke('text')
.should('eq', contactID);
});
};
Теперь я пытаюсь написать тест другого варианта - пользователя, который отменяет удаление, мне нужно проверить,данный contactID
существует на странице, как мне этого добиться?
Приведенный выше код неверен, ожидается, что на панели all будет задан contactID
.
Редактировать:
const deleteResult = action => {
cy.get('div[data-test="Results"]').should('be.visible');
let contactID;
cy.get('div[data-test="Results"]')
.first()
.within(() => {
cy.get('p[data-test="Contact ID"]').then($match => {
contactID= $match.text();
cy.get('button[data-test="Delete Contact"]')
.click()
.get('div[data-test="Delete Record Modal"]')
.should('be.visible')
.get(`button[data-test="${action}"]`)
.click();
});
});
cy.wait(2000);
const els = cy.get('p[data-test="Contact ID"]');
if (action === 'Confirm Deletion') {
els.each($match => {
cy.wrap($match)
.invoke('text')
.should('not.eq', contactID); //contactID is the actual ids
});
} else {
els.should('contain', contactID); //contactID is undefined
}
};