From 54971f37ad9574fd8de09cb9e1c42f6a83af2c55 Mon Sep 17 00:00:00 2001 From: Belen Curcio Date: Fri, 13 Oct 2017 10:54:26 -0300 Subject: [PATCH] Adding Install tests --- test/e2e/page_objects/installPage.js | 26 +++++++++ test/e2e/specs/01_install_test.js | 85 ++++++++++++++++++++++++++++ 2 files changed, 111 insertions(+) create mode 100644 test/e2e/page_objects/installPage.js create mode 100644 test/e2e/specs/01_install_test.js diff --git a/test/e2e/page_objects/installPage.js b/test/e2e/page_objects/installPage.js new file mode 100644 index 000000000..7abf619d6 --- /dev/null +++ b/test/e2e/page_objects/installPage.js @@ -0,0 +1,26 @@ +module.exports = { + commands: [{ + url: function() { + return `${this.api.launchUrl}/admin/install`; + }, + ready() { + return this + .waitForElementVisible('body', 2000); + }, + }], + elements: { + 'getStartedButton': '.talk-install-get-started-button', + 'step2': '.talk-install-step-2', + 'step2organizationNameInput': '.talk-install-step-2 #organizationName', + 'step2saveButton': '.talk-install-step-2-save-button', + 'step3': '.talk-install-step-3', + 'step3EmailInput': '.talk-install-step-3 #email', + 'step3UsernameInput': '.talk-install-step-3 #username', + 'step3PasswordInput': '.talk-install-step-3 #password', + 'step3ConfirmPasswordInput': '.talk-install-step-3 #confirmPassword', + 'step3saveButton': '.talk-install-step-3-save-button', + 'step4': '.talk-install-step-4', + 'step4DomainInput': '.talk-install-step-4-permited-domains-input', + 'step4saveButton': '.talk-install-step-4-save-button', + } +}; diff --git a/test/e2e/specs/01_install_test.js b/test/e2e/specs/01_install_test.js new file mode 100644 index 000000000..a5742b8e1 --- /dev/null +++ b/test/e2e/specs/01_install_test.js @@ -0,0 +1,85 @@ +const uuid = require('uuid'); +const {murmur3} = require('murmurhash-js'); + +const rHash = murmur3(uuid.v4()); + +const testData = { + organizationName: 'Coral', + email: `test_${rHash}@test.test`, + username: `test${rHash}`, + password: `testpassword${rHash}`, + domain: 'http://localhost:3000' +}; + +module.exports = { + '@tags': ['install'], + 'User goes to install': (client) => { + const installPage = client.page.installPage(); + + installPage + .navigate() + .ready(); + + }, + 'User clicks get started button': (client) => { + const installPage = client.page.installPage(); + + installPage + .waitForElementVisible('@getStartedButton') + .click('@getStartedButton'); + }, + 'User should see step 2 - Add Organization Name': (client) => { + const installPage = client.page.installPage(); + + installPage + .waitForElementVisible('@step2'); + }, + 'User fills step 2': (client) => { + const installPage = client.page.installPage(); + + installPage + .waitForElementVisible('@step2organizationNameInput') + .setValue('@step2organizationNameInput', testData.organizationName) + .waitForElementVisible('@step2saveButton') + .click('@step2saveButton'); + }, + 'User should see step 3 - Create your account': (client) => { + const installPage = client.page.installPage(); + + installPage + .waitForElementVisible('@step3'); + }, + 'User fills step 3': (client) => { + const installPage = client.page.installPage(); + + installPage + .setValue('@step3EmailInput', testData.email) + .setValue('@step3UsernameInput', testData.username) + .setValue('@step3PasswordInput', testData.password) + .setValue('@step3ConfirmPasswordInput', testData.password) + .waitForElementVisible('@step3saveButton') + .click('@step3saveButton'); + }, + 'User should see step 4 - Domain Whitelist': (client) => { + const installPage = client.page.installPage(); + + installPage + .waitForElementVisible('@step4'); + }, + 'User fills step 4': (client) => { + const installPage = client.page.installPage(); + + installPage + .waitForElementVisible('@step4DomainInput') + .setValue('@step4DomainInput', testData.domain); + + client.keys(client.Keys.ENTER); + + installPage + .waitForElementVisible('@step4saveButton') + .click('@step4saveButton'); + }, + after: (client) => { + client.end(); + } +};