// *********************************************** // 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) => { ... }) //For firefox only issue chrome ok when running all test since cypress v10 //https://docs.cypress.io/api/events/catalog-of-events#Uncaught-Exceptions Cypress.on('uncaught:exception', (err, runnable, promise) => { // when the exception originated from an unhandled promise // rejection, the promise is provided as a third argument // you can turn off failing the test in this case if (promise) { return false } // we still want to ensure there are no other unexpected // errors, so we let them fail the test }) 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(); cy.get("input[name=password]").clear(); 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 }); });