153 lines
7.1 KiB
JavaScript
153 lines
7.1 KiB
JavaScript
const isEmailAvailableUrl = 'https://stage.hep-verlag.ch/rest/deutsch/V1/customers/isEmailAvailable';
|
|
const registerUrl = '/api/proxy/registration/';
|
|
|
|
let registrationResponse = {
|
|
id: 84215,
|
|
group_id: 1,
|
|
confirmation: "91cf39007547feae7e33778d89fc71db",
|
|
created_at: "2020-02-06 13:56:54",
|
|
updated_at: "2020-02-06 13:56:54",
|
|
created_in: "hep verlag",
|
|
email: "feuz@aebi.ch",
|
|
firstname: "Kari",
|
|
lastname: "Feuz",
|
|
prefix: "Herr",
|
|
gender: 1,
|
|
store_id: 1,
|
|
website_id: 1,
|
|
addresses: []
|
|
};
|
|
|
|
describe('Registration', () => {
|
|
beforeEach(() => {
|
|
cy.viewport('macbook-15');
|
|
cy.server();
|
|
});
|
|
|
|
it('works with valid data', () => {
|
|
cy.route('POST', isEmailAvailableUrl, "true");
|
|
cy.route('POST', registerUrl, registrationResponse);
|
|
|
|
cy.visit('/hello');
|
|
cy.checkEmailAvailable(registrationResponse.email);
|
|
|
|
cy.get('[data-cy="registration-title"]').contains('Damit Sie mySkillbox verwenden können, müssen Sie ein Konto erstellen.');
|
|
cy.register(registrationResponse.gender, registrationResponse.firstname, registrationResponse.lastname, 'Weg 1', 'Bern', '3001', 'Abcd1234!', 'Abcd1234!');
|
|
cy.get('[data-cy="email-check"]').contains('Ein Email ist auf dem Weg, bitte überprüfen sie ihre E-mail Konto.');
|
|
});
|
|
|
|
it('displays error if firstname is missing', () => {
|
|
cy.route('POST', isEmailAvailableUrl, "true");
|
|
cy.route('POST', registerUrl, registrationResponse);
|
|
|
|
cy.visit('/hello');
|
|
cy.checkEmailAvailable(registrationResponse.email);
|
|
|
|
cy.get('[data-cy="registration-title"]').contains('Damit Sie mySkillbox verwenden können, müssen Sie ein Konto erstellen.');
|
|
cy.register(registrationResponse.gender, '', registrationResponse.lastname, 'Weg 1', 'Bern', '3001', 'Abcd1234!', 'Abcd1234!');
|
|
cy.get('[data-cy="firstname-local-errors"]').contains('Vorname ist ein Pflichtfeld');
|
|
});
|
|
|
|
it('displays error if lastname is missing', () => {
|
|
cy.route('POST', isEmailAvailableUrl, "true");
|
|
cy.route('POST', registerUrl, registrationResponse);
|
|
|
|
cy.visit('/hello');
|
|
cy.checkEmailAvailable(registrationResponse.email);
|
|
|
|
cy.get('[data-cy="registration-title"]').contains('Damit Sie mySkillbox verwenden können, müssen Sie ein Konto erstellen.');
|
|
cy.register(registrationResponse.gender, registrationResponse.firstname, '', 'Weg 1', 'Bern', '3001', 'Abcd1234!', 'Abcd1234!');
|
|
cy.get('[data-cy="lastname-local-errors"]').contains('Nachname ist ein Pflichtfeld');
|
|
});
|
|
|
|
it('displays error if street is missing', () => {
|
|
cy.route('POST', isEmailAvailableUrl, 'true');
|
|
cy.route('POST', registerUrl, registrationResponse);
|
|
|
|
cy.visit('/hello');
|
|
cy.checkEmailAvailable(registrationResponse.email);
|
|
|
|
cy.get('[data-cy="registration-title"]').contains('Damit Sie mySkillbox verwenden können, müssen Sie ein Konto erstellen.');
|
|
cy.register(registrationResponse.gender, registrationResponse.firstname, registrationResponse.lastname, '', 'Bern', '3001', 'Abcd1234!', 'Abcd1234!');
|
|
cy.get('[data-cy="street-local-errors"]').contains('Strasse ist ein Pflichtfeld');
|
|
});
|
|
|
|
it('displays error if city is missing', () => {
|
|
cy.route('POST', isEmailAvailableUrl, 'true');
|
|
cy.route('POST', registerUrl, registrationResponse);
|
|
|
|
cy.visit('/hello');
|
|
cy.checkEmailAvailable(registrationResponse.email);
|
|
|
|
cy.get('[data-cy="registration-title"]').contains('Damit Sie mySkillbox verwenden können, müssen Sie ein Konto erstellen.');
|
|
cy.register(registrationResponse.gender, registrationResponse.firstname, registrationResponse.lastname, 'Weg 1', '', '3001', 'Abcd1234!', 'Abcd1234!');
|
|
cy.get('[data-cy="city-local-errors"]').contains('Ort ist ein Pflichtfeld');
|
|
});
|
|
|
|
it('displays error if postcode is missing', () => {
|
|
cy.route('POST', isEmailAvailableUrl, 'true');
|
|
cy.route('POST', registerUrl, registrationResponse);
|
|
|
|
cy.visit('/hello');
|
|
cy.checkEmailAvailable(registrationResponse.email);
|
|
|
|
cy.get('[data-cy="registration-title"]').contains('Damit Sie mySkillbox verwenden können, müssen Sie ein Konto erstellen.');
|
|
cy.register(registrationResponse.gender, registrationResponse.firstname, registrationResponse.lastname, 'Weg 1', 'Bern', '', 'Abcd1234!', 'Abcd1234!');
|
|
cy.get('[data-cy="postcode-local-errors"]').contains('Postleitzahl ist ein Pflichtfeld');
|
|
});
|
|
|
|
it('displays error if password is missing', () => {
|
|
cy.route('POST', isEmailAvailableUrl, "true");
|
|
cy.route('POST', registerUrl, registrationResponse);
|
|
|
|
cy.visit('/hello');
|
|
cy.checkEmailAvailable(registrationResponse.email);
|
|
|
|
cy.get('[data-cy="registration-title"]').contains('Damit Sie mySkillbox verwenden können, müssen Sie ein Konto erstellen.');
|
|
cy.register(registrationResponse.gender, registrationResponse.firstname, registrationResponse.lastname, 'Weg 1', 'Bern', '3001', '', 'Abcd1234!');
|
|
cy.get('[data-cy="password-local-errors"]').contains('Passwort ist ein Pflichtfeld');
|
|
});
|
|
|
|
it('displays error if passwords are not secure', () => {
|
|
cy.route('POST', isEmailAvailableUrl, "true");
|
|
cy.route('POST', registerUrl, registrationResponse);
|
|
|
|
cy.visit('/hello');
|
|
cy.checkEmailAvailable(registrationResponse.email);
|
|
|
|
cy.get('[data-cy="registration-title"]').contains('Damit Sie mySkillbox verwenden können, müssen Sie ein Konto erstellen.');
|
|
cy.register(registrationResponse.gender, registrationResponse.firstname, registrationResponse.lastname, 'Weg 1', 'Bern', '3001', 'Abcd1234', 'Abcd1234');
|
|
cy.get('[data-cy="password-local-errors"]').contains('Das Passwort muss Grossbuchstaben, Zahlen und Sonderzeichen beinhalten und mindestens 8 Zeichen lang sein');
|
|
});
|
|
|
|
it('displays error if passwords are too short', () => {
|
|
cy.route('POST', isEmailAvailableUrl, "true");
|
|
cy.route('POST', registerUrl, registrationResponse);
|
|
|
|
cy.visit('/hello');
|
|
cy.checkEmailAvailable(registrationResponse.email);
|
|
|
|
cy.get('[data-cy="registration-title"]').contains('Damit Sie mySkillbox verwenden können, müssen Sie ein Konto erstellen.');
|
|
cy.register(registrationResponse.gender, registrationResponse.firstname, registrationResponse.lastname, 'Weg 1', 'Bern', '3001', 'Abcd12!', 'Abcd12!');
|
|
cy.get('[data-cy="password-local-errors"]').contains('Das Passwort muss Grossbuchstaben, Zahlen und Sonderzeichen beinhalten und mindestens 8 Zeichen lang sein');
|
|
});
|
|
|
|
it('displays error if passwords are not matching', () => {
|
|
cy.route('POST', isEmailAvailableUrl, "true");
|
|
cy.route('POST', registerUrl, registrationResponse);
|
|
|
|
cy.visit('/hello');
|
|
cy.checkEmailAvailable(registrationResponse.email);
|
|
|
|
cy.get('[data-cy="registration-title"]').contains('Damit Sie mySkillbox verwenden können, müssen Sie ein Konto erstellen.');
|
|
cy.register(registrationResponse.gender, registrationResponse.firstname, registrationResponse.lastname, 'Weg 1', 'Bern', '3001', 'Abcd1234!', 'Abcd129999!');
|
|
cy.get('[data-cy="passwordConfirmation-local-errors"]').contains('Die Bestätigung von Passwort wiederholen stimmt nicht überein');
|
|
});
|
|
|
|
it('redirects to hello if email is missing', () => {
|
|
cy.visit('/register');
|
|
cy.get('[data-cy="hello-title"]').contains('Wollen sie mySkillbox jetzt im Unterricht verwenden?');
|
|
});
|
|
|
|
});
|