describe('Custom Element', () => { function getCustomElement() { return cy.get('.step').eq(0).find('.inline-custom').first(); } it('should be able to render an interactive custom element', () => { cy.get('.step').should('have.length', 1); cy.get('.step').eq(0).find('.inline-custom').should('have.length', 1); getCustomElement().should('contain', 'Count: 1'); getCustomElement().find('#increment').click(); getCustomElement().should('contain', 'Count: 2'); getCustomElement().find('#increment').click(); getCustomElement().should('contain', 'Count: 3'); getCustomElement().find('#action').click(); cy.get('.step').should('have.length', 2); cy.get('.step').eq(1).should('contain', 'Executed test action!'); getCustomElement().find('#remove').click(); cy.get('.step').eq(0).find('.inline-custom').should('not.exist'); }); });