Skip to content
Snippets Groups Projects
Commit 01dba1b9 authored by Gabriel Engel's avatar Gabriel Engel Committed by GitHub
Browse files

Merge pull request #5980 from RocketChat/registration-tests

Manually Aprove New Users test
parents 20ff265b 2fe1a6e4
No related branches found
No related tags found
No related merge requests found
......@@ -112,7 +112,7 @@ module.exports = {
timeout: 40000,
reporter: 'min',
slow: 100,
retries: 3,
//retries: 3,
bail: false // bail after first test failure
},
......
......@@ -2,6 +2,7 @@
/* globals expect */
/* eslint no-unused-vars: 0 */
import loginPage from '../../pageobjects/login.page';
import supertest from 'supertest';
const request = supertest('http://localhost:3000');
const prefix = '/api/v1/';
......@@ -9,9 +10,10 @@ const prefix = '/api/v1/';
import flexTab from '../../pageobjects/flex-tab.page';
import mainContent from '../../pageobjects/main-content.page';
import sideNav from '../../pageobjects/side-nav.page';
import admin from '../../pageobjects/administration.page';
//test data imports
import {checkIfUserIsValid} from '../../data/checks';
import {checkIfUserIsValid, checkIfUserIsAdmin} from '../../data/checks';
import {targetUser, imgURL} from '../../data/interactions.js';
import {adminUsername, adminEmail, adminPassword, username, email, password} from '../../data/user.js';
......@@ -59,6 +61,11 @@ describe('Changing settings via api', () => {
.end(done);
});
after(() => {
sideNav.preferencesClose.waitForVisible(5000);
sideNav.preferencesClose.click();
});
it('/login', () => {
expect(credentials).to.have.property('X-Auth-Token').with.length.at.least(1);
expect(credentials).to.have.property('X-User-Id').with.length.at.least(1);
......@@ -420,5 +427,92 @@ describe('Changing settings via api', () => {
});
});
});
describe('Manually Approve New Users', () => {
before(() => {
sideNav.accountBoxUserName.waitForVisible(5000);
sideNav.accountBoxUserName.click();
sideNav.logout.waitForVisible(5000);
sideNav.logout.click();
loginPage.open();
});
it('should change the Manually Approve New Users via api', (done) => {
request.post(api('settings/Accounts_ManuallyApproveNewUsers'))
.set(credentials)
.send({'value' : true})
.expect('Content-Type', 'application/json')
.expect(200)
.expect((res) => {
expect(res.body).to.have.property('success', true);
})
.end(done);
});
it('register the user', () => {
loginPage.registerButton.waitForVisible(5000);
loginPage.registerButton.click();
loginPage.nameField.waitForVisible(5000);
loginPage.nameField.setValue('setting'+username);
loginPage.emailField.setValue('setting'+email);
loginPage.passwordField.setValue(password);
loginPage.confirmPasswordField.setValue(password);
loginPage.submit();
loginPage.registrationSucceededCard.waitForVisible(5000);
loginPage.registrationSucceededCard.getText().toLowerCase().should.equal('registration succeeded');
loginPage.backToLoginButton.click();
});
it('login as admin and go to users', () => {
checkIfUserIsAdmin(adminUsername, adminEmail, adminPassword);
sideNav.accountBoxUserName.click();
sideNav.admin.waitForVisible(5000);
sideNav.admin.click();
admin.usersLink.waitForVisible(5000);
admin.usersLink.click();
admin.usersFilter.waitForVisible(5000);
});
it('search the user', () => {
admin.usersFilter.click();
admin.usersFilter.setValue('setting'+username);
});
it('opens the user', () => {
const userEl = admin.getUserFromList('setting'+username);
userEl.waitForVisible(5000);
userEl.click();
flexTab.usersView.waitForVisible(5000);
});
it('should show the activate user btn', () => {
flexTab.usersActivate.waitForVisible(5000);
flexTab.usersActivate.isVisible().should.be.true;
});
it('should activate the user', () => {
flexTab.usersActivate.click();
});
it('should show the deactivate btn', () => {
flexTab.usersDeactivate.waitForVisible(5000);
flexTab.usersDeactivate.isVisible().should.be.true;
});
it('should change the Manually Approve New Users via api', (done) => {
request.post(api('settings/Accounts_ManuallyApproveNewUsers'))
.set(credentials)
.send({'value' : false})
.expect('Content-Type', 'application/json')
.expect(200)
.expect((res) => {
expect(res.body).to.have.property('success', true);
})
.end(done);
});
});
});
......@@ -117,12 +117,18 @@ class Administration extends Page {
get generalUTF8NamesSlugReset() { return browser.element('.reset-setting[data-setting="UTF8_Names_Slugify"]'); }
checkUserList(user) {
var element = browser.element('td=adminCreated'+user);
const element = browser.element('td=adminCreated'+user);
element.waitForVisible(5000);
browser.pause(500);
var result = element.isVisible();
const result = element.isVisible();
return result[0];
}
getUserFromList(user) {
const element = browser.element('td='+user);
element.waitForVisible(5000);
return element;
}
}
module.exports = new Administration();
......@@ -83,6 +83,10 @@ class FlexTab extends Page {
get usersAddUserRandomPassword() { return browser.element('#randomPassword'); }
get emojiNewAliases() { return browser.element('#aliases'); }
get emojiNewImageInput() { return browser.element('#image'); }
get usersView() { return browser.element('.user-view'); }
get usersEditUser() { return browser.element('.user-view .edit-user'); }
get usersActivate() { return browser.element('.button.activate'); }
get usersDeactivate() { return browser.element('.button.deactivate'); }
getUserEl(username) { return browser.element(`.flex-tab button[title="${username}"] > p`); }
......
......@@ -18,6 +18,7 @@ class LoginPage extends Page {
get emailInvalidText() { return browser.element('[name=email]~.input-error'); }
get passwordInvalidText() { return browser.element('[name=pass]~.input-error'); }
get confirmPasswordInvalidText() { return browser.element('[name=confirm-pass]~.input-error'); }
get registrationSucceededCard() { return browser.element('#login-card h2'); }
open() {
super.open('');
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment