mirror of https://github.com/nocodb/nocodb
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
107 lines
3.5 KiB
107 lines
3.5 KiB
// *********************************************** |
|
// 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 waiting until page load |
|
Cypress.Commands.add('waitForSpinners', () => { |
|
cy.visit('http://localhost:3000', {retryOnNetworkFailure: true, timeout: 120000}) |
|
cy.get('#nuxt-loading', {timeout: 10_000}).should('have.length', 0) |
|
}) |
|
Cypress.Commands.add('signinOrSignup', () => { |
|
|
|
// signin/signup |
|
cy.get('body').then(($body) => { |
|
cy.wait(1000) |
|
cy.url().then(url => { |
|
if (!url.includes('/projects')) { |
|
// handle initial load |
|
if ($body.find('.welcome-page').length > 0) { |
|
cy.wait(8000); |
|
cy.get('body').trigger('mousemove'); |
|
cy.contains('Let\'s Begin').click(); |
|
cy.get('input[type="text"]').type('pranavc@gmail.com'); |
|
cy.get('input[type="password"]').type('Password123.'); |
|
cy.get('button:contains("SIGN UP")').click() |
|
|
|
// handle signin |
|
} else { |
|
cy.get('input[type="text"]').type('pranavc@gmail.com'); |
|
cy.get('input[type="password"]').type('Password123.'); |
|
cy.get('button:contains("SIGN IN")').click() |
|
} |
|
} |
|
|
|
}) |
|
}) |
|
}); |
|
// for opening/creating a rest project |
|
Cypress.Commands.add('openOrCreateRestProject', () => { |
|
|
|
// signin/signup |
|
cy.signinOrSignup() |
|
cy.wait(2000); |
|
cy.get('body').then($body => { |
|
// if project exist open |
|
if ($body.find('.nc-rest-project-row').length) { |
|
cy.get('.nc-rest-project-row').first().click() |
|
// create new project |
|
} else { |
|
cy.contains('New Project').trigger('onmouseover').trigger('mouseenter'); |
|
cy.get('.create-external-db-project').click() |
|
cy.url({timeout: 6000}).should('contain', '#/project') |
|
cy.get('.database-field input').click().clear().type('sakila') |
|
cy.contains('Test Database Connection').click() |
|
cy.contains('Ok & Save Project', {timeout: 3000}).click() |
|
} |
|
}) |
|
cy.url({timeout: 20000}).should('contain', '#/nc/') |
|
|
|
}) |
|
|
|
|
|
Cypress.Commands.add('openOrCreateGqlProject', () => { |
|
|
|
cy.signinOrSignup() |
|
|
|
|
|
cy.wait(2000); |
|
cy.get('body').then($body => { |
|
// if project exist open |
|
if ($body.find('.nc-graphql-project-row').length) { |
|
cy.get('.nc-graphql-project-row').first().click() |
|
// create new project |
|
} else { |
|
cy.contains('New Project').trigger('onmouseover').trigger('mouseenter'); |
|
cy.get('.create-external-db-project').click() |
|
cy.url({timeout: 6000}).should('contain', '#/project') |
|
cy.contains('GRAPHQL APIs').closest('label').click() |
|
cy.get('.database-field input').click().clear().type('sakila') |
|
cy.contains('Test Database Connection').click() |
|
cy.contains('Ok & Save Project', {timeout: 3000}).click() |
|
} |
|
}) |
|
cy.url({timeout: 20000}).should('contain', '#/nc/') |
|
|
|
})
|
|
|