Commit e3b7e2a9 authored by Ben Hayward's avatar Ben Hayward

Added data attributes.

1 merge request!483[Sprint/KiltedKoala](feat): Added e2e test for registration
Pipeline #82022599 passed with stages
in 49 minutes and 53 seconds
import generateRandomId from '../support/utilities';
context('Registration', () => {
const username = Math.random().toString(36).replace('0.', '');
const username = generateRandomId();
const password = `${generateRandomId()}0oA!`;
const email = 'test@minds.com';
const password = `${Math.random().toString(36).replace('0.', '')}0oA!`;
const noSymbolPass = 'Passw0rd';
const welcomeText = "Welcome to Minds!";
......@@ -13,12 +15,8 @@ context('Registration', () => {
const emailField = 'minds-form-register #email';
const passwordField = 'minds-form-register #password';
const password2Field = 'minds-form-register #password2';
const checkbox = 'minds-form-register label:nth-child(2) .mdl-ripple--center';
const checkbox = '[data-cy=data-minds-accept-tos-input]';
const submitButton = 'minds-form-register .mdl-card__actions button';
const errorContainer = 'div:nth-child(2) > minds-form-register > div > div';
before(() => {
});
beforeEach(() => {
cy.visit('/login');
......@@ -36,60 +34,99 @@ context('Registration', () => {
it('should allow a user to register', () => {
//type values
cy.get(usernameField).focus().type(username);
cy.get(emailField).focus().type(email);
cy.get(passwordField).focus().type(password);
cy.get(usernameField)
.focus()
.type(username);
cy.get(emailField)
.focus()
.type(email);
cy.get(passwordField)
.focus()
.type(password);
cy.wait(500);
cy.get(password2Field).focus().type(password);
cy.get(checkbox).click();
cy.get(password2Field)
.focus()
.type(password);
cy.get(checkbox)
.click({force: true});
//submit
cy.get(submitButton).click()
cy.get(submitButton)
.click()
.wait('@register').then((xhr) => {
expect(xhr.status).to.equal(200);
});
//onboarding modal shown
cy.get('m-onboarding--topics > div > h2:nth-child(1)')
.contains(welcomeText);
cy.contains(welcomeText);
});
it('should display an error if password is invalid', () => {
cy.get(usernameField).focus().type(Math.random().toString(36).replace('0.', ''));
cy.get(emailField).focus().type(email);
cy.get(passwordField).focus().type(noSymbolPass);
cy.get(usernameField)
.focus()
.type(generateRandomId());
cy.get(emailField)
.focus()
.type(email);
cy.get(passwordField)
.focus()
.type(noSymbolPass);
cy.wait(500);
cy.get(password2Field).focus().type(noSymbolPass);
cy.get(checkbox).click();
cy.get(password2Field)
.focus()
.type(noSymbolPass);
cy.get(checkbox)
.click({force: true});
//submit
cy.get(submitButton).click()
cy.get(submitButton)
.click()
.wait('@register').then((xhr) => {
expect(xhr.status).to.equal(200);
});
cy.scrollTo('top');
cy.get(errorContainer)
.contains(passwordInvalid);
cy.contains(passwordInvalid);
});
it('should display an error if passwords do not match', () => {
cy.get(usernameField).focus().type(Math.random().toString(36).replace('0.', ''));
cy.get(emailField).focus().type(email);
cy.get('minds-form-register #password').focus().type(password);
cy.get(usernameField)
.focus()
.type(generateRandomId());
cy.get(emailField)
.focus()
.type(email);
cy.get('minds-form-register #password')
.focus()
.type(password);
cy.wait(500);
cy.get(password2Field).focus().type(password + '!');
cy.get(checkbox).click();
cy.get(password2Field)
.focus()
.type(password + '!');
cy.get(checkbox)
.click({force: true});
//submit
cy.get(submitButton).click();
cy.scrollTo('top');
cy.get(errorContainer)
.contains(passwordDontMatch);
cy.contains(passwordDontMatch);
});
})
......@@ -125,6 +125,7 @@
type="checkbox"
class="mdl-checkbox__input"
formControlName="tos"
data-cy="data-minds-accept-tos-input"
/>
<span
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment