From dff11d1ada417dc27b9170ef383ff85d6f9ca5b0 Mon Sep 17 00:00:00 2001 From: DmitriyOparin <35344996+DmitriyOparin@users.noreply.github.com> Date: Tue, 22 Dec 2020 22:09:46 +0300 Subject: [PATCH] Upgrade cypress test. Login and logout. (#2574) * added new steps * added cssSelector for task name element Co-authored-by: Dmitriy Oparin --- cvat-ui/src/components/task-page/details.tsx | 2 +- .../actions_users/issue_1810_login_logout.js | 50 +++++++++++++++++++ 2 files changed, 51 insertions(+), 1 deletion(-) diff --git a/cvat-ui/src/components/task-page/details.tsx b/cvat-ui/src/components/task-page/details.tsx index f0077f7e..818c26e9 100644 --- a/cvat-ui/src/components/task-page/details.tsx +++ b/cvat-ui/src/components/task-page/details.tsx @@ -297,7 +297,7 @@ export default class DetailsComponent extends React.PureComponent return (
- {this.renderTaskName()} + {this.renderTaskName()} diff --git a/tests/cypress/integration/actions_users/issue_1810_login_logout.js b/tests/cypress/integration/actions_users/issue_1810_login_logout.js index c7d64a04..b9bd34f1 100644 --- a/tests/cypress/integration/actions_users/issue_1810_login_logout.js +++ b/tests/cypress/integration/actions_users/issue_1810_login_logout.js @@ -4,8 +4,11 @@ /// +import { taskName } from '../../support/const'; + context('When clicking on the Logout button, get the user session closed.', () => { const issueId = '1810'; + let taskId; before(() => { cy.visit('auth/login'); @@ -15,8 +18,55 @@ context('When clicking on the Logout button, get the user session closed.', () = it('Login', () => { cy.login(); }); + it('Logout', () => { cy.logout(); }); + + it('Login and open task', () => { + cy.login(); + cy.openTask(taskName); + // get id task + cy.url().then((link) => { + taskId = Number(link.split('/').slice(-1)[0]); + }); + }); + + it('Logout and login to task via GUI', () => { + // logout from task + cy.get('.cvat-right-header').within(() => { + cy.get('.cvat-header-menu-dropdown').should('have.text', Cypress.env('user')).trigger('mouseover', { which: 1 }); + }); + cy.get('span[aria-label="logout"]').click(); + cy.url().should('include', `/auth/login/?next=/tasks/${taskId}`); + // login to task + cy.get('[placeholder="Username"]').type(Cypress.env('user')); + cy.get('[placeholder="Password"]').type(Cypress.env('password')); + cy.get('[type="submit"]').click(); + cy.url() + .should('include', `/tasks/${taskId}`) + .and('not.include', '/auth/login/'); + cy.contains('.cvat-task-details-task-name', `${taskName}`).should('be.visible'); + }); + + it('Logout and login to task via token', () => { + cy.logout(); + // get token and login to task + cy.request({ + method: 'POST', + url: '/api/v1/auth/login', + body: { + username: Cypress.env('user'), + email: Cypress.env('email'), + password: Cypress.env('password'), + }, + }).then(async (responce) => { + responce = await responce['headers']['set-cookie']; + const csrfToken = responce[0].match(/csrftoken=\w+/)[0].replace('csrftoken=', ''); + const sessionId = responce[1].match(/sessionid=\w+/)[0].replace('sessionid=', ''); + cy.visit(`/login-with-token/${sessionId}/${csrfToken}?next=/tasks/${taskId}`) + cy.contains('.cvat-task-details-task-name', `${taskName}`).should('be.visible'); + }); + }); }); });