From ea4d8e0a3b2945f4a4be6947f59d925ac68b6b71 Mon Sep 17 00:00:00 2001 From: Dmitry Kruchinin <33020454+dvkruchinin@users.noreply.github.com> Date: Fri, 5 Mar 2021 09:02:09 +0300 Subject: [PATCH] Cypress test. Creating more than one task from project per time. (#2909) * Cypress test. Create more than one task per time from project. * Add cypress command. * Little bit fix. * Adaptation cypress test for issue 2625. * Some rework test * Change context text. * Rename test --- .../issue_2625_delete_project_via_actions.js | 11 +-- ...ng_more_one_tasks_from_project_per_time.js | 74 +++++++++++++++++++ tests/cypress/support/commands.js | 4 +- tests/cypress/support/commands_projects.js | 11 +++ 4 files changed, 89 insertions(+), 11 deletions(-) create mode 100644 tests/cypress/integration/actions_projects/issue_2900_creating_more_one_tasks_from_project_per_time.js diff --git a/tests/cypress/integration/actions_projects/issue_2625_delete_project_via_actions.js b/tests/cypress/integration/actions_projects/issue_2625_delete_project_via_actions.js index c45c23c7..57c5e384 100644 --- a/tests/cypress/integration/actions_projects/issue_2625_delete_project_via_actions.js +++ b/tests/cypress/integration/actions_projects/issue_2625_delete_project_via_actions.js @@ -1,4 +1,4 @@ -// Copyright (C) 2020 Intel Corporation +// Copyright (C) 2020-2021 Intel Corporation // // SPDX-License-Identifier: MIT @@ -15,14 +15,7 @@ context('Delete a project via actions.', () => { describe(`Testing "Issue ${issueID}"`, () => { it('Delete a project via actions.', () => { - cy.get('.cvat-project-top-bar-actions').trigger('mouseover'); - cy.get('.cvat-project-actions-menu').within(() => { - cy.contains('[role="menuitem"]', 'Delete').click(); - }); - cy.get('.cvat-modal-confirm-remove-project').within(() => { - cy.contains('button', 'Delete').click(); - }); - cy.contains('.cvat-projects-project-item-title', projectName).should('not.exist'); + cy.deleteProjectViaActions(projectName); }); }); }); diff --git a/tests/cypress/integration/actions_projects/issue_2900_creating_more_one_tasks_from_project_per_time.js b/tests/cypress/integration/actions_projects/issue_2900_creating_more_one_tasks_from_project_per_time.js new file mode 100644 index 00000000..91d6b8c5 --- /dev/null +++ b/tests/cypress/integration/actions_projects/issue_2900_creating_more_one_tasks_from_project_per_time.js @@ -0,0 +1,74 @@ +// Copyright (C) 2021 Intel Corporation +// +// SPDX-License-Identifier: MIT + +/// + +import { projectName, labelName } from '../../support/const_project'; + +context('Create more than one task per time when create from project.', () => { + const issueID = 2900; + const taskName = { + firstTask: `First task for ${projectName}`, + secondTask: `Second task for ${projectName}`, + }; + const imagesCount = 1; + const imageFileName = `image_${taskName.firstTask.replace(/\s+/g, '_').toLowerCase()}`; + const width = 800; + const height = 800; + const posX = 10; + const posY = 10; + const color = 'white'; + const archiveName = `${imageFileName}.zip`; + const archivePath = `cypress/fixtures/${archiveName}`; + const imagesFolder = `cypress/fixtures/${imageFileName}`; + const directoryToArchive = imagesFolder; + + function createTask(nameTaskToCreate, repeatCreation) { + let projectSearchField; + if (!repeatCreation) { + projectSearchField = projectName; + } else { + projectSearchField = ''; + } + cy.get('[id="name"]').clear().type(nameTaskToCreate); + cy.get('.cvat-project-search-field').within(() => { + cy.get('[type="search"]').should('have.value', projectSearchField); + }); + if (repeatCreation) { + cy.get('.cvat-project-search-field').click(); + cy.get('.ant-select-dropdown') + .not('.ant-select-dropdown-hidden') + .within(() => { + cy.get(`.ant-select-item-option[title="${projectName}"]`).click(); + }); + } + cy.get('.cvat-constructor-viewer-new-item').should('not.exist'); + cy.get('input[type="file"]').attachFile(archiveName, { subjectType: 'drag-n-drop' }); + cy.contains('button', 'Submit').click(); + cy.get('.cvat-notification-create-task-success').should('exist'); + cy.get('.cvat-notification-create-task-fail').should('not.exist'); + } + + before(() => { + cy.imageGenerator(imagesFolder, imageFileName, width, height, color, posX, posY, labelName, imagesCount); + cy.createZipArchive(directoryToArchive, archivePath); + cy.openProject(projectName); + }); + + describe(`Testing "Issue ${issueID}"`, () => { + it('Create more than one task per time from project.', () => { + cy.get('#cvat-create-task-button').click(); + createTask(taskName.firstTask, false); + createTask(taskName.secondTask, true); + }); + + it('The tasks successfully created. Remove the project.', () => { + cy.goToProjectsList(); + cy.openProject(projectName); + cy.contains('.cvat-item-task-name', taskName.firstTask).should('exist').and('be.visible'); + cy.contains('.cvat-item-task-name', taskName.secondTask).should('exist').and('be.visible'); + cy.deleteProjectViaActions(projectName); + }); + }); +}); diff --git a/tests/cypress/support/commands.js b/tests/cypress/support/commands.js index 63ac25d9..0d73528e 100644 --- a/tests/cypress/support/commands.js +++ b/tests/cypress/support/commands.js @@ -44,7 +44,7 @@ Cypress.Commands.add('userRegistration', (firstName, lastName, userName, emailAd Cypress.Commands.add( 'createAnnotationTask', ( - taksName = 'New annotation task', + taskName = 'New annotation task', labelName = 'Some label', attrName = 'Some attr name', textDefaultValue = 'Some default value for type Text', @@ -58,7 +58,7 @@ Cypress.Commands.add( ) => { cy.get('#cvat-create-task-button').click({ force: true }); cy.url().should('include', '/tasks/create'); - cy.get('[id="name"]').type(taksName); + cy.get('[id="name"]').type(taskName); if (!forProject) { cy.get('.cvat-constructor-viewer-new-item').click(); cy.get('[placeholder="Label name"]').type(labelName); diff --git a/tests/cypress/support/commands_projects.js b/tests/cypress/support/commands_projects.js index 5d180ac1..e4633160 100644 --- a/tests/cypress/support/commands_projects.js +++ b/tests/cypress/support/commands_projects.js @@ -63,6 +63,17 @@ Cypress.Commands.add('deleteProject', (projectName, projectID, expectedResult = } }); +Cypress.Commands.add('deleteProjectViaActions', (projectName) => { + cy.get('.cvat-project-top-bar-actions').trigger('mouseover'); + cy.get('.cvat-project-actions-menu').within(() => { + cy.contains('[role="menuitem"]', 'Delete').click(); + }); + cy.get('.cvat-modal-confirm-remove-project').within(() => { + cy.contains('button', 'Delete').click(); + }); + cy.contains('.cvat-projects-project-item-title', projectName).should('not.exist'); +}); + Cypress.Commands.add('assignProjectToUser', (user) => { cy.get('.cvat-project-details').within(() => { cy.get('.cvat-user-search-field').click().type(user);