// *********************************************** // This example commands.js shows you how to // create various custom commands and overwrite // existing commands. // // For more comprehensive examples of custom // commands please read more here: // https://on.cypress.io/custom-commands // *********************************************** // // // -- This is a parent command -- // Cypress.Commands.add("login", (email, password) => { ... }) // // // -- This is a child command -- // Cypress.Commands.add("drag", { prevSubject: 'element'}, (subject, options) => { ... }) // // // -- This is a dual command -- // Cypress.Commands.add("dismiss", { prevSubject: 'optional'}, (subject, options) => { ... }) // // // -- This is will overwrite an existing command -- // Cypress.Commands.overwrite("visit", (originalFn, url, options) => { ... }) function getBaseUrl() { return 'http://localhost:8080'; } cy.getBaseUrl = function() { return getBaseUrl(); } Cypress.Commands.add('visitCMS', (url) => { cy.visit(getBaseUrl() + url); }); Cypress.Commands.add('actionStart', () => { cy.server(); cy.route({ method: 'POST', url: '/*', }).as('formAction'); }); Cypress.Commands.add('actionWait', () => { cy.wait('@formAction'); }); Cypress.Commands.add('resetCMS', () => { cy.request({ method: 'POST', url: getBaseUrl() + '/', form: true, body: { action: 'index-cypress-reset', } }).then((response) => { expect(response.body).to.eq('OK'); }); }); Cypress.Commands.add('installCMS', () => { cy.actionStart(); cy.resetCMS(); cy.visitCMS('/cp/'); cy.get('.form-signin input[name=name]').type('fave'); cy.get('.form-signin input[name=user]').type('root'); cy.get('.form-signin input[name=password]').type('root'); cy.get('.form-signin button').click(); cy.actionWait(); }); Cypress.Commands.add('loginCMS', () => { cy.actionStart(); cy.visitCMS('/cp/'); cy.get('.form-signin input[name=email]').type('example@example.com'); cy.get('.form-signin input[name=password]').type('example@example.com'); cy.get('.form-signin button').click(); cy.actionWait(); }); Cypress.Commands.add('logoutCMS', () => { cy.actionStart(); cy.visitCMS('/cp/'); cy.get('#navbarCollapse ul.navbar-nav:nth-child(2) li.nav-item:nth-child(1) a.nav-link').click(); cy.contains('#navbarCollapse ul.navbar-nav:nth-child(2) li.nav-item:nth-child(1) div.dropdown-menu a', 'Logout').click(); cy.actionWait(); });