diff --git a/cypress/integration/admin.spec.js b/cypress/integration/admin.spec.js --- a/cypress/integration/admin.spec.js +++ b/cypress/integration/admin.spec.js @@ -12,7 +12,6 @@ let url; function login(username, password) { - cy.visit(url); cy.get('input[name="username"]') .type(username) .get('input[name="password"]') @@ -31,11 +30,10 @@ url = this.Urls.admin(); }); - beforeEach(function() { + it('should redirect to default page', function() { + cy.visit(url); login(username, password); - }); - it('should redirect to default page', function() { cy.location('pathname') .should('be.equal', defaultRedirect); @@ -43,6 +41,9 @@ }); it('should display admin-origin-save and deposit in sidebar', function() { + cy.visit(url); + login(username, password); + cy.get(`.sidebar a[href="${this.Urls.admin_origin_save()}"]`) .should('be.visible'); @@ -53,6 +54,9 @@ }); it('should display username on top-right', function() { + cy.visit(url); + login(username, password); + cy.get('.swh-position-right') .should('contain', username); @@ -60,7 +64,6 @@ }); it('should prevent unauthorized access after logout', function() { - logout(); cy.visit(this.Urls.admin_origin_save()) .location('pathname') .should('be.equal', '/admin/login/'); @@ -68,4 +71,17 @@ .location('pathname') .should('be.equal', '/admin/login/'); }); + + it('should redirect to correct page after login', function() { + cy.visit(this.Urls.admin_deposit()) + .location('search') + .should('contain', `next=${this.Urls.admin_deposit()}`); + + login(username, password); + + cy.location('pathname') + .should('be.equal', this.Urls.admin_deposit()); + + logout(); + }); });