describe('Install MyAAC', () => { beforeEach(() => { // Cypress starts out with a blank slate for each test // so we must tell it to visit our website with the `cy.visit()` command. // Since we want to visit the same URL at the start of all our tests, // we include it in our beforeEach function so that it runs before each test cy.visit(Cypress.env('URL')) }) it('Go through installer', () => { cy.visit(Cypress.env('URL') + '/install/?step=welcome') cy.wait(1000) cy.screenshot('install-welcome') // step 1 - Welcome cy.get('select[name="lang"]').select('en') //cy.get('input[type=button]').contains('Next ยป').click() cy.get('form').submit() // step 2 - License // just skip cy.contains('GNU/GPL License'); cy.get('form').submit() // step 3 - Requirements cy.contains('Requirements check'); cy.get('#step').then(elem => { elem.val('config'); }); cy.get('form').submit() // step 4 - Configuration cy.contains('Basic configuration'); cy.get('#vars_server_path').click().clear().type(Cypress.env('SERVER_PATH')) cy.get('[type="checkbox"]').uncheck() // usage statistics uncheck cy.wait(1000) cy.get('form').submit() // check if there is any error // step 5 - Import Schema cy.contains('Import MySQL schema'); // AAC is not installed yet, this message should not come cy.contains('Seems AAC is already installed. Skipping importing MySQL schema..').should('not.exist') cy.contains('[class="alert alert-success"]', 'Local configuration has been saved into file: config.local.php').should('be.visible') cy.get('form').submit() // step 6 - Admin Account cy.get('#vars_email').click().clear().type('admin@my-aac.org') cy.get('#vars_account').click().clear().type('admin') cy.get('#vars_password').click().clear().type('test1234') cy.get('#vars_password_confirm').click().clear().type('test1234') cy.get('#vars_player_name').click().clear().type('Admin') cy.get('form').submit() cy.contains('[class="alert alert-success"]', 'Congratulations', { timeout: 30000 }).should('be.visible') cy.screenshot('install-finish') }) })