Глядя на это немного дальше, вы, кажется, без необходимости используете синтаксис в стиле обещания.
Поскольку Cypress имеет автоматические c повторные попытки для (большинства) команд, вы можете просто вызывать команды последовательно, не ожидая результата с конструкциями .then(...
.
Например, ваш код может Перейдите к следующему:
it('Should modify checkbox state', () => {
login();
cy.visit(TabsSettings.SIZE_FORMATS);
cy.xpath('(//div[@data-qa="sizeFormats"]//*[4]//*//*[1]//*//*//*)[1]', {timeout: 10000 }).click();
// cy.xpath('(//input[@type="checkbox"])[1]').then(checkbox => checkbox).should('be.checked')
cy.get('input[@type="checkbox"]).eq(0).should('be.checked'); // NB eq() has zero-based indexing.
cy.get('span').contains('Change').click();
cy.get('li').contains('Disable').click();
// OR if you have to wait for the Disable button/link to appear, use this
cy.contains('li', 'Disable').click();
cy.xpath('(//div[@data-qa="sizeFormats"]//*[4]//*//*[1]//*//*//*)[1]').click();
cy.get('input[@type="checkbox"]).eq(0).should('be.checked');
...
Я не знаком с синтаксисом xpath, поэтому перевод - это предположение, но кажется, что команды Cypress немного более читабельны, имеют более плоский макет, ПЛЮС вы получаете встроенную автоматическую повторную попытку, которая устраняет необходимость ждать определенные c периоды.
Если вы хотите добавить к своему вопросу перевод псевдокодов выражений xpath, я дам вам эквивалентные команды Cypress.