// *********************************************** // 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 will overwrite an existing command -- // Cypress.Commands.overwrite('visit', (originalFn, url, options) => { ... }) Cypress.Commands.add("ayChooseVSelect", (dataCyTag, selectionText) => { cy.get(`[data-cy='${dataCyTag}']`).click({ force: true }); cy.get(".v-list-item__title") .contains(new RegExp("^" + selectionText + "$", "g")) .click({ force: true }); }); Cypress.Commands.add("ayChooseGZPickList", (dataCyTag, selectionText) => { cy.get(`[data-cy='${dataCyTag}']`).click({ force: true }).type(selectionText); cy.get(".menuable__content__active") .contains(new RegExp(selectionText)) .click(); }); Cypress.Commands.add("ayLogin", (user, urlAfterLogin) => { if (!urlAfterLogin) { urlAfterLogin = "/ay-evaluate"; } cy.visit("/login"); cy.get("input[name=username]").clear().type(Cypress.env(user).login); // {enter} causes the form to submit cy.get("input[name=password]") .clear() .type(`${Cypress.env(user).password}{enter}`); cy.url().should("include", urlAfterLogin); }); Cypress.Commands.add("ayChooseExistingTags", (dataCyTag, tagList) => { for (let i = 0; i < tagList.length; i++) { cy.get(`[data-cy='${dataCyTag}']`).click().type(tagList[i]); cy.get(".v-list-item__mask"); cy.get(`[data-cy='${dataCyTag}']`).type("{downarrow}{enter}"); } }); Cypress.Commands.add("aySetTestableUserOptions", () => { cy.visit("/home-user-settings"); cy.url().should("include", "/home-user-settings"); cy.get("[data-cy='nativeDateTimeInput']").check({ force: true }); });