Skip to content

Commit

Permalink
Cypress test. Update case "Dump/upload annotation" (#2893)
Browse files Browse the repository at this point in the history
* Add css classes

* Update cypress test

* Add negative scenario
  • Loading branch information
dvkruchinin authored Mar 2, 2021
1 parent a77b7f6 commit 4191ea2
Show file tree
Hide file tree
Showing 3 changed files with 80 additions and 6 deletions.
3 changes: 2 additions & 1 deletion cvat-ui/src/components/actions-menu/actions-menu.tsx
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Copyright (C) 2020 Intel Corporation
// Copyright (C) 2020-2021 Intel Corporation
//
// SPDX-License-Identifier: MIT

Expand Down Expand Up @@ -66,6 +66,7 @@ export default function ActionsMenuComponent(props: Props): JSX.Element {
Modal.confirm({
title: 'Current annotation will be lost',
content: 'You are going to upload new annotations to this task. Continue?',
className: 'cvat-modal-content-load-task-annotation',
onOk: () => {
onClickMenu(copyParams, file);
},
Expand Down
3 changes: 2 additions & 1 deletion cvat-ui/src/reducers/notifications-reducer.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Copyright (C) 2020 Intel Corporation
// Copyright (C) 2020-2021 Intel Corporation
//
// SPDX-License-Identifier: MIT

Expand Down Expand Up @@ -345,6 +345,7 @@ export default function (state = defaultState, action: AnyAction): Notifications
'Could not upload annotation for the ' +
`<a href="/tasks/${taskID}" target="_blank">task ${taskID}</a>`,
reason: action.payload.error.toString(),
className: 'cvat-notification-notice-load-annotation-failed',
},
},
},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,47 @@ context('Dump/Upload annotation.', { browser: '!firefox' }, () => {
secondY: 450,
};

const labelNameSecond = `Case ${caseId}`;
const taskNameSecond = `New annotation task for ${labelNameSecond}`;
const attrName = `Attr for ${labelNameSecond}`;
const textDefaultValue = 'Some default value for type Text';
const imagesCount = 1;
const imageFileName = `image_${labelNameSecond.replace(' ', '_').toLowerCase()}`;
const width = 800;
const height = 800;
const posX = 10;
const posY = 10;
const color = 'gray';
const archiveName = `${imageFileName}.zip`;
const archivePath = `cypress/fixtures/${archiveName}`;
const imagesFolder = `cypress/fixtures/${imageFileName}`;
const directoryToArchive = imagesFolder;

const dumpType = 'CVAT for images';
let annotationArchiveName = '';

function uploadToTask(toTaskName) {
cy.contains('.cvat-item-task-name', toTaskName)
.parents('.cvat-tasks-list-item')
.find('.cvat-menu-icon')
.trigger('mouseover');
cy.contains('Upload annotations').trigger('mouseover');
cy.contains('.cvat-menu-load-submenu-item', dumpType.split(' ')[0])
.should('be.visible')
.within(() => {
cy.get('.cvat-menu-load-submenu-item-button')
.click()
.get('input[type=file]')
.attachFile(annotationArchiveName);
});
}

function confirmUpdate(modalWindowClassName) {
cy.get(modalWindowClassName).within(() => {
cy.contains('button', 'Update').click();
});
}

before(() => {
cy.openTaskJob(taskName);
cy.createRectangle(createRectangleTrack2Points);
Expand Down Expand Up @@ -49,7 +87,7 @@ context('Dump/Upload annotation.', { browser: '!firefox' }, () => {
});
});

it('Upload annotation.', () => {
it('Upload annotation to job.', () => {
cy.interactMenu('Upload annotations');
cy.contains('.cvat-menu-load-submenu-item', dumpType.split(' ')[0])
.should('be.visible')
Expand All @@ -61,14 +99,48 @@ context('Dump/Upload annotation.', { browser: '!firefox' }, () => {
});
cy.intercept('PUT', '/api/v1/jobs/**/annotations**').as('uploadAnnotationsPut');
cy.intercept('GET', '/api/v1/jobs/**/annotations**').as('uploadAnnotationsGet');
cy.get('.cvat-modal-content-load-job-annotation').within(() => {
cy.contains('button', 'Update').click();
});
confirmUpdate('.cvat-modal-content-load-job-annotation');
cy.wait('@uploadAnnotationsPut', { timeout: 5000 }).its('response.statusCode').should('equal', 202);
cy.wait('@uploadAnnotationsPut').its('response.statusCode').should('equal', 201);
cy.wait('@uploadAnnotationsGet').its('response.statusCode').should('equal', 200);
cy.get('#cvat_canvas_shape_1').should('exist');
cy.get('#cvat-objects-sidebar-state-item-1').should('exist');
cy.removeAnnotations();
});

it('Upload annotation to task.', () => {
cy.goToTaskList();
uploadToTask(taskName);
confirmUpdate('.cvat-modal-content-load-task-annotation');
cy.contains('Annotations have been loaded').should('be.visible');
cy.get('[data-icon="close"]').click();
cy.openTaskJob(taskName, 0, false);
cy.get('#cvat_canvas_shape_1').should('exist');
cy.get('#cvat-objects-sidebar-state-item-1').should('exist');
});

it('Upload annotation to task which does not match the parameters. The error should be exist.', () => {
cy.goToTaskList();
cy.imageGenerator(
imagesFolder,
imageFileName,
width,
height,
color,
posX,
posY,
labelNameSecond,
imagesCount,
);
cy.createZipArchive(directoryToArchive, archivePath);
cy.createAnnotationTask(taskNameSecond, labelNameSecond, attrName, textDefaultValue, archiveName);
uploadToTask(taskNameSecond);
confirmUpdate('.cvat-modal-content-load-task-annotation');
cy.get('.cvat-notification-notice-load-annotation-failed')
.should('exist')
.find('[aria-label="close"]')
.click();
cy.deleteTask(taskNameSecond);
});
});
});

0 comments on commit 4191ea2

Please sign in to comment.