diff --git a/plugins.js b/plugins.js index 30cf4292..9fb244e2 100644 --- a/plugins.js +++ b/plugins.js @@ -1,3 +1,5 @@ -const plugins = require('./src/cypress/plugins.js') - -module.exports = plugins +// eslint-disable-next-line no-unused-vars +module.exports = (on, config) => { + const cucumber = require('cypress-cucumber-preprocessor').default + on('file:preprocessor', cucumber()) +} diff --git a/src/cypress/plugins.js b/src/cypress/plugins.js deleted file mode 100644 index 9fb244e2..00000000 --- a/src/cypress/plugins.js +++ /dev/null @@ -1,5 +0,0 @@ -// eslint-disable-next-line no-unused-vars -module.exports = (on, config) => { - const cucumber = require('cypress-cucumber-preprocessor').default - on('file:preprocessor', cucumber()) -} diff --git a/src/cypress/support.js b/src/cypress/support.js deleted file mode 100644 index 3b70c306..00000000 --- a/src/cypress/support.js +++ /dev/null @@ -1,47 +0,0 @@ -const loginEndPoint = 'dhis-web-commons/security/login.action' - -/** - * This is done through cy.request(...) - * because Cypress doesn't allow multiple domains per test: - * https://docs.cypress.io/guides/guides/web-security.html#One-Superdomain-per-Test - */ -module.exports = () => { - Cypress.Commands.add('login', () => { - const username = Cypress.env('dhis2_username') - const password = Cypress.env('dhis2_password') - const loginUrl = Cypress.env('dhis2_base_url') - const loginAuth = `Basic ${btoa(`${username}:${password}`)}` - - return cy.request({ - url: `${loginUrl}/${loginEndPoint}`, - method: 'POST', - body: { - j_username: username, - j_password: password, - '2fa_code': '', - }, - headers: { Authorization: loginAuth }, - }) - }) - - Cypress.Commands.add( - 'stubWithFixture', - ({ method = 'GET', url, fixture }) => { - return cy.route({ - method, - url, - response: `fixture:${fixture}`, - }) - } - ) - - Cypress.Commands.add('visitWhenStubbed', (url, options = {}) => { - return cy.visit(url, { - ...options, - onBeforeLoad: win => { - delete win.fetch - options.onBeforeLoad && options.onBeforeLoad(win) - }, - }) - }) -} diff --git a/support.js b/support.js index c9877443..43dde782 100644 --- a/support.js +++ b/support.js @@ -1,3 +1,42 @@ -const support = require('./src/cypress/support.js') +const loginEndPoint = 'dhis-web-commons/security/login.action' -module.exports = support +/** + * This is done through cy.request(...) + * because Cypress doesn't allow multiple domains per test: + * https://docs.cypress.io/guides/guides/web-security.html#One-Superdomain-per-Test + */ +Cypress.Commands.add('login', () => { + const username = Cypress.env('dhis2_username') + const password = Cypress.env('dhis2_password') + const loginUrl = Cypress.env('dhis2_base_url') + const loginAuth = `Basic ${btoa(`${username}:${password}`)}` + + return cy.request({ + url: `${loginUrl}/${loginEndPoint}`, + method: 'POST', + body: { + j_username: username, + j_password: password, + '2fa_code': '', + }, + headers: { Authorization: loginAuth }, + }) +}) + +Cypress.Commands.add('stubWithFixture', ({ method = 'GET', url, fixture }) => { + return cy.route({ + method, + url, + response: `fixture:${fixture}`, + }) +}) + +Cypress.Commands.add('visitWhenStubbed', (url, options = {}) => { + return cy.visit(url, { + ...options, + onBeforeLoad: win => { + delete win.fetch + options.onBeforeLoad && options.onBeforeLoad(win) + }, + }) +}) diff --git a/templates/support.js b/templates/support.js index 20e7c4a3..89ddbfa5 100644 --- a/templates/support.js +++ b/templates/support.js @@ -1,3 +1,3 @@ -const support = require('@dhis2/cli-utils-cypress/support') +import '@dhis2/cli-utils-cypress/support' -support() +// Add additional support functions here