In this video, I refactor the page object method that deletes a customer.
add a log message
use cy.contains(selector, text) rather than the longer cy.get(selector).contains(text)
explicit "confirm" stub and check that the stub was called with expected argument
confirm the application routes to the correct URL after deleting
delete() {
cy.log('**deleting the customer**');
cy.on(
'window:confirm',
cy
.stub()
.returns(true)
// @ts-expect-error
.as('confirm')
);
cy.contains('button', 'Delete').click();
cy.get('@confirm').should('have.been.calledOnceWith', 'Really delete?');
cy.location('pathname').should('eq', '/customer');
}
Find the original code at https://github.com/bahmutov/basta-spr...