mirror of
https://github.com/slawkens/myaac.git
synced 2025-04-25 16:59:21 +02:00
Add Cypress tests: install + create account
This commit is contained in:
parent
0d0e5812dd
commit
269ae323e0
9
cypress.config.js
Normal file
9
cypress.config.js
Normal file
@ -0,0 +1,9 @@
|
||||
const { defineConfig } = require("cypress");
|
||||
|
||||
module.exports = defineConfig({
|
||||
e2e: {
|
||||
setupNodeEvents(on, config) {
|
||||
// implement node event listeners here
|
||||
},
|
||||
},
|
||||
});
|
87
cypress/e2e/1-install.cy.js
Normal file
87
cypress/e2e/1-install.cy.js
Normal file
@ -0,0 +1,87 @@
|
||||
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('#vars_mail_admin').click().clear().type('noone@example.net')
|
||||
|
||||
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.wait(1000);
|
||||
cy.get('.class', { timeout: 12_000 }).should('be.visible')
|
||||
|
||||
cy.screenshot('install-finish')
|
||||
})
|
||||
|
||||
it('Take Screenshot of the Home Page', () => {
|
||||
cy.wait(1000)
|
||||
cy.screenshot('home')
|
||||
})
|
||||
|
||||
it('Take Screenshot of Create Account page', () => {
|
||||
cy.visit(Cypress.env('URL') + '/index.php/account/create')
|
||||
cy.wait(1000)
|
||||
cy.screenshot('create-account-page')
|
||||
})
|
||||
})
|
33
cypress/e2e/2-create-account.cy.js
Normal file
33
cypress/e2e/2-create-account.cy.js
Normal file
@ -0,0 +1,33 @@
|
||||
describe('Create Account Page', () => {
|
||||
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') + '/index.php/account/create')
|
||||
})
|
||||
|
||||
it('Create Test Account', () => {
|
||||
cy.screenshot('create-account-page')
|
||||
|
||||
cy.get('#account_input').type('admin')
|
||||
cy.get('#email').type('admin@example.com')
|
||||
|
||||
cy.get('#password').type('test1234')
|
||||
cy.get('#password2').type('test1234')
|
||||
|
||||
cy.get('#character_name').type('Slaw')
|
||||
|
||||
cy.get('#sex1').check()
|
||||
cy.get('#vocation1').check()
|
||||
cy.get('#accept_rules').check()
|
||||
|
||||
cy.get('#createaccount').submit()
|
||||
|
||||
// no errors please
|
||||
cy.contains('The Following Errors Have Occurred:').should('not.exist')
|
||||
|
||||
// ss of post page
|
||||
cy.screenshot('create-account-page-post')
|
||||
})
|
||||
})
|
5
cypress/fixtures/example.json
Normal file
5
cypress/fixtures/example.json
Normal file
@ -0,0 +1,5 @@
|
||||
{
|
||||
"name": "Using fixtures to represent data",
|
||||
"email": "hello@cypress.io",
|
||||
"body": "Fixtures are a great way to mock data for responses to routes"
|
||||
}
|
25
cypress/support/commands.js
Normal file
25
cypress/support/commands.js
Normal file
@ -0,0 +1,25 @@
|
||||
// ***********************************************
|
||||
// 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) => { ... })
|
20
cypress/support/e2e.js
Normal file
20
cypress/support/e2e.js
Normal file
@ -0,0 +1,20 @@
|
||||
// ***********************************************************
|
||||
// This example support/e2e.js is processed and
|
||||
// loaded automatically before your test files.
|
||||
//
|
||||
// This is a great place to put global configuration and
|
||||
// behavior that modifies Cypress.
|
||||
//
|
||||
// You can change the location of this file or turn off
|
||||
// automatically serving support files with the
|
||||
// 'supportFile' configuration option.
|
||||
//
|
||||
// You can read more here:
|
||||
// https://on.cypress.io/configuration
|
||||
// ***********************************************************
|
||||
|
||||
// Import commands.js using ES2015 syntax:
|
||||
import './commands'
|
||||
|
||||
// Alternatively you can use CommonJS syntax:
|
||||
// require('./commands')
|
1927
package-lock.json
generated
Normal file
1927
package-lock.json
generated
Normal file
File diff suppressed because it is too large
Load Diff
5
package.json
Normal file
5
package.json
Normal file
@ -0,0 +1,5 @@
|
||||
{
|
||||
"devDependencies": {
|
||||
"cypress": "^12.12.0"
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user