Update integration tests
This commit is contained in:
parent
13e3192776
commit
a1954e00c5
|
|
@ -6,13 +6,17 @@ describe('Change Password Page', () => {
|
|||
const validationErrorMsg = 'Das Passwort muss Grossbuchstaben, Zahlen und Sonderzeichen beinhalten';
|
||||
const validationOldWrongMsg = 'Die Eingabe ist falsch';
|
||||
|
||||
beforeEach(function () {
|
||||
cy.logout();
|
||||
cy.visit('/me/profile');
|
||||
cy.login('rahel.cueni', 'test');
|
||||
});
|
||||
|
||||
after(function () {
|
||||
cy.exec("python ../server/manage.py reset_testuser_password rahel.cueni");
|
||||
});
|
||||
|
||||
it('shows an empty form', () => {
|
||||
cy.login('rahel.cueni', 'test');
|
||||
cy.visit('/me/profile');
|
||||
|
||||
cy.get('[data-cy=password-change-success]').should('not.exist');
|
||||
cy.get('[data-cy=old-password]').should('have.value', '');
|
||||
|
|
@ -20,73 +24,46 @@ describe('Change Password Page', () => {
|
|||
});
|
||||
|
||||
it('shows errors if old password is not entered', () => {
|
||||
cy.login('rahel.cueni', 'test');
|
||||
cy.visit('/me/profile');
|
||||
|
||||
cy.changePassword('', validNewPassword);
|
||||
cy.get('[data-cy=old-password-local-errors]').should('contain', 'Dein aktuelles Passwort fehlt')
|
||||
});
|
||||
|
||||
it('shows errors if new password is not entered', () => {
|
||||
cy.login('rahel.cueni', 'test');
|
||||
cy.visit('/me/profile');
|
||||
|
||||
cy.changePassword(validOldPassword, '');
|
||||
cy.get('[data-cy=new-password-local-errors]').should('contain', 'Dein neues Passwort fehlt')
|
||||
});
|
||||
|
||||
it('shows errors if new password is too short', () => {
|
||||
cy.login('rahel.cueni', 'test');
|
||||
cy.visit('/me/profile');
|
||||
|
||||
cy.changePassword(validOldPassword, 'Abc1!');
|
||||
cy.get('[data-cy=new-password-local-errors]').should('contain', validationTooShort)
|
||||
});
|
||||
|
||||
it('shows errors if new password has no uppercase letter', () => {
|
||||
cy.login('rahel.cueni', 'test');
|
||||
cy.visit('/me/profile');
|
||||
|
||||
cy.changePassword(validOldPassword, 'aabdddedddbc1!');
|
||||
cy.get('[data-cy=new-password-local-errors]').should('contain', validationErrorMsg)
|
||||
});
|
||||
|
||||
it('shows errors if new password has no lowercase letter', () => {
|
||||
cy.login('rahel.cueni', 'test');
|
||||
cy.visit('/me/profile');
|
||||
|
||||
cy.changePassword(validOldPassword, 'ABCDDD334551!');
|
||||
cy.get('[data-cy=new-password-local-errors]').should('contain', validationErrorMsg)
|
||||
});
|
||||
|
||||
it('shows errors if new password has no digit', () => {
|
||||
cy.login('rahel.cueni', 'test');
|
||||
cy.visit('/me/profile');
|
||||
|
||||
cy.changePassword(validOldPassword, 'AbcdEEDE!');
|
||||
cy.get('[data-cy=new-password-local-errors]').should('contain', validationErrorMsg)
|
||||
});
|
||||
|
||||
it('shows errors if new password has no special character', () => {
|
||||
cy.login('rahel.cueni', 'test');
|
||||
cy.visit('/me/profile');
|
||||
|
||||
cy.changePassword(validOldPassword, 'AbcdEEDE09877');
|
||||
cy.get('[data-cy=new-password-local-errors]').should('contain', validationErrorMsg)
|
||||
});
|
||||
|
||||
it('shows errors if old password does not match', () => {
|
||||
cy.login('rahel.cueni', 'test');
|
||||
cy.visit('/me/profile');
|
||||
|
||||
cy.changePassword('test12345', validNewPassword);
|
||||
cy.get('[data-cy=old-password-remote-errors]').should('contain', validationOldWrongMsg)
|
||||
});
|
||||
|
||||
it('shows success if change was successful', () => {
|
||||
cy.login('rahel.cueni', 'test');
|
||||
cy.visit('/me/profile');
|
||||
|
||||
cy.changePassword(validOldPassword, validNewPassword);
|
||||
cy.get('[data-cy=password-change-success]').should('contain', 'Dein Password wurde erfolgreich geändert.');
|
||||
cy.get('[data-cy=old-password]').should('have.value', '');
|
||||
|
|
|
|||
|
|
@ -4,8 +4,8 @@ describe('Current Module', () => {
|
|||
cy.startGraphQLCapture();
|
||||
cy.viewport('macbook-15');
|
||||
|
||||
cy.login('nico.zickgraf', 'test');
|
||||
cy.visit('/module/lohn-und-budget');
|
||||
cy.login('nico.zickgraf', 'test');
|
||||
|
||||
cy.get('[data-cy=module-title]').should('contain', 'Lohn und Budget')
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
describe('The Logged In Home Page', () => {
|
||||
it('successfully loads', () => {
|
||||
cy.login('test', 'test');
|
||||
cy.visit('/');
|
||||
cy.login('test', 'test');
|
||||
|
||||
cy.get('.block-title__title').should('contain', 'Inhalte')
|
||||
})
|
||||
|
|
|
|||
|
|
@ -1,13 +0,0 @@
|
|||
describe('The Login CSRF Token', () => {
|
||||
|
||||
it('403 status without token', () => {
|
||||
cy.loginByCsrf('some-token')
|
||||
.its('status')
|
||||
.should('eq', 403)
|
||||
});
|
||||
|
||||
it('gets token from response body', () => {
|
||||
cy.login('test', 'test')
|
||||
})
|
||||
|
||||
});
|
||||
|
|
@ -1,15 +1,47 @@
|
|||
describe('The Login Page', () => {
|
||||
it('sets auth cookie when logging in via form submission', () => {
|
||||
it('login and redirect to main page', () => {
|
||||
const username = 'test';
|
||||
const password = 'test';
|
||||
|
||||
cy.visit('/');
|
||||
cy.login(username, password, true);
|
||||
cy.get('body').contains('Neues Wissen erwerben');
|
||||
});
|
||||
|
||||
cy.get('#id_username').type(username);
|
||||
cy.get('#id_password').type(`${password}{enter}`);
|
||||
it('user sees error message if username is omitted', () => {
|
||||
const username = '';
|
||||
const password = 'test';
|
||||
|
||||
cy.getCookie('sessionid').should('exist');
|
||||
cy.get('.start-page__header').should('exist')
|
||||
cy.visit('/');
|
||||
cy.login(username, password);
|
||||
cy.get('[data-cy=email-local-errors]').contains('ist ein Pflichtfeld');
|
||||
});
|
||||
|
||||
it('user sees error message if password is omitted', () => {
|
||||
const username = 'test';
|
||||
const password = '';
|
||||
|
||||
cy.visit('/');
|
||||
cy.login(username, password);
|
||||
cy.get('[data-cy=password-local-errors]').contains('ist ein Pflichtfeld');
|
||||
});
|
||||
|
||||
it('user sees error message if credentials are invalid', () => {
|
||||
const username = 'test';
|
||||
const password = '12345';
|
||||
|
||||
cy.visit('/');
|
||||
cy.login(username, password);
|
||||
cy.get('[data-cy=login-error]').contains('Die E-Mail oder das Passwort ist falsch. Bitte versuchen Sie nochmals.');
|
||||
});
|
||||
|
||||
it('redirect after login', () => {
|
||||
const username = 'test';
|
||||
const password = 'test';
|
||||
|
||||
cy.visit('/book/topic/berufliche-grundbildung');
|
||||
cy.login(username, password);
|
||||
cy.get('body').contains('Berufliche Grundbildung');
|
||||
});
|
||||
// it('logs in programmatically without using the UI', () => {
|
||||
// cy.visit('/accounts/login/'); // have to get a csrf token by getting the base page first
|
||||
|
|
|
|||
|
|
@ -1,9 +1,9 @@
|
|||
describe('New project', () => {
|
||||
it('creates a new project and displays it', () => {
|
||||
cy.viewport('macbook-15');
|
||||
cy.visit('/portfolio');
|
||||
cy.login('rahel.cueni', 'test');
|
||||
|
||||
cy.visit('/portfolio');
|
||||
cy.get('[data-cy=add-project-button]').click();
|
||||
cy.get('[data-cy=page-form-input-titel]').type('Some random title');
|
||||
cy.get('[data-cy=page-form-input-beschreibung]').type('This description rocks');
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ describe('Project Entry', () => {
|
|||
|
||||
cy.viewport('macbook-15');
|
||||
cy.startGraphQLCapture();
|
||||
cy.login('rahel.cueni', 'test');
|
||||
cy.login('rahel.cueni', 'test', true);
|
||||
});
|
||||
|
||||
it('should create a new project entry', () => {
|
||||
|
|
|
|||
|
|
@ -1,9 +1,9 @@
|
|||
describe('The Room Page', () => {
|
||||
it('displays new room entry with author name', () => {
|
||||
cy.viewport('macbook-15');
|
||||
cy.visit('/room/ein-historisches-festival');
|
||||
cy.login('rahel.cueni', 'test');
|
||||
|
||||
cy.visit('/room/ein-historisches-festival');
|
||||
cy.get('[data-cy=add-room-entry-button]').click();
|
||||
cy.get('.add-content-element:first-of-type').click();
|
||||
cy.get('[data-cy=choose-text-widget]').click();
|
||||
|
|
|
|||
|
|
@ -1,15 +1,16 @@
|
|||
describe('The Rooms Page', () => {
|
||||
it('goes to the rooms page', () => {
|
||||
cy.visit('/rooms');
|
||||
cy.login('nico.zickgraf', 'test');
|
||||
|
||||
cy.visit('/rooms');
|
||||
|
||||
cy.get('[data-cy=add-room]').should('exist');
|
||||
});
|
||||
|
||||
it('add room should not exist for student', () => {
|
||||
cy.visit('/rooms');
|
||||
cy.login('rahel.cueni', 'test');
|
||||
|
||||
cy.visit('/rooms');
|
||||
|
||||
cy.get('[data-cy=add-room]').should('not.exist');
|
||||
});
|
||||
|
|
|
|||
|
|
@ -21,8 +21,8 @@ describe('Solutions', () => {
|
|||
// cy.logout();
|
||||
cy.viewport('macbook-15');
|
||||
|
||||
cy.login('rahel.cueni', 'test');
|
||||
cy.visit('/module/lohn-und-budget');
|
||||
cy.login('rahel.cueni', 'test');
|
||||
cy.get('[data-cy=toggle-enable-solutions]')
|
||||
.should('not.exist');
|
||||
cy.get('[data-cy=solution]').should('not.exist');
|
||||
|
|
@ -40,8 +40,8 @@ describe('Solutions', () => {
|
|||
|
||||
cy.logout();
|
||||
|
||||
cy.login('rahel.cueni', 'test');
|
||||
cy.visit('/module/lohn-und-budget');
|
||||
cy.login('rahel.cueni', 'test');
|
||||
// cy.get('[data-cy=solution]').should('exist');
|
||||
cy.get('[data-cy=solution]').first()
|
||||
.should('contain', 'anzeigen')
|
||||
|
|
|
|||
|
|
@ -24,22 +24,19 @@
|
|||
// -- This is will overwrite an existing command --
|
||||
// Cypress.Commands.overwrite("visit", (originalFn, url, options) => { ... })
|
||||
|
||||
Cypress.Commands.add("login", (username, password) => {
|
||||
cy.request('/')
|
||||
.its('body')
|
||||
.then(body => {
|
||||
console.log(body);
|
||||
const $html = Cypress.$(body);
|
||||
Cypress.Commands.add("login", (username, password, visitLogin=false) => {
|
||||
if (visitLogin) {
|
||||
cy.visit('/login');
|
||||
}
|
||||
|
||||
const csrf = $html.find('input[name=csrfmiddlewaretoken]').val();
|
||||
console.log(csrf);
|
||||
cy.loginByCsrf(username, password, csrf)
|
||||
.then(resp => {
|
||||
expect(resp.status).to.eq(200);
|
||||
expect(resp.body).to.include('skillbox');
|
||||
});
|
||||
})
|
||||
if (username != '') {
|
||||
cy.get('[data-cy=email-input]').type(username);
|
||||
}
|
||||
|
||||
if (password != '') {
|
||||
cy.get('[data-cy=password-input]').type(password);
|
||||
}
|
||||
cy.get('[data-cy=login-button]').click();
|
||||
});
|
||||
|
||||
Cypress.Commands.add("logout", () => {
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@
|
|||
:class="{ 'sbform-input__input--error': errors.has('email') }"
|
||||
class="change-form__email skillbox-input sbform-input__input"
|
||||
autocomplete="off"
|
||||
data-cy="email"
|
||||
data-cy="email-input"
|
||||
/>
|
||||
<small
|
||||
v-if="errors.has('email') && submitted"
|
||||
|
|
@ -38,7 +38,7 @@
|
|||
:class="{ 'sbform-input__input--error': errors.has('password') }"
|
||||
class="change-form__new skillbox-input sbform-input__input"
|
||||
autocomplete="off"
|
||||
data-cy="password"
|
||||
data-cy="password-input"
|
||||
/>
|
||||
<small
|
||||
v-if="errors.has('password') && submitted"
|
||||
|
|
@ -53,9 +53,9 @@
|
|||
>{{ error }}</small>
|
||||
</div>
|
||||
<div class="sbform-input">
|
||||
<small class="sbform-input__error" v-if="loginError">{{loginError}}</small>
|
||||
<small class="sbform-input__error" data-cy="login-error" v-if="loginError">{{loginError}}</small>
|
||||
</div>
|
||||
<button class="button button--primary change-form__submit" data-cy="change-password-button">Anmelden</button>
|
||||
<button class="button button--primary change-form__submit" data-cy="login-button">Anmelden</button>
|
||||
</form>
|
||||
</div>
|
||||
</template>
|
||||
|
|
|
|||
Loading…
Reference in New Issue