From 70b67ccdca920eb1db9081ab8d1419a1d4b89c46 Mon Sep 17 00:00:00 2001 From: Dmitriy Oparin Date: Thu, 3 Dec 2020 16:39:18 +0300 Subject: [PATCH] improvements test --- .../case_24_delete_unlock_lock_object.js | 95 +++++++++++++------ 1 file changed, 67 insertions(+), 28 deletions(-) diff --git a/tests/cypress/integration/actions_tasks_objects/case_24_delete_unlock_lock_object.js b/tests/cypress/integration/actions_tasks_objects/case_24_delete_unlock_lock_object.js index 1079b490..e070a6d7 100644 --- a/tests/cypress/integration/actions_tasks_objects/case_24_delete_unlock_lock_object.js +++ b/tests/cypress/integration/actions_tasks_objects/case_24_delete_unlock_lock_object.js @@ -20,43 +20,74 @@ context('Delete unlock/lock object', () => { }; function lockObject() { - cy.get('div.cvat-objects-sidebar-state-item').within(() => { + cy.get('.cvat-objects-sidebar-state-item').within(() => { cy.get('.cvat-object-item-button-lock').click(); }); }; - function deleteObjectViaShortcut(shortcut) { - cy.get('.cvat-canvas-container') - .trigger('mousemove', createRectangleShape2Points.secondX - 10, createRectangleShape2Points.secondY - 10) // activate shape - .get('body') + function deleteObjectViaShortcut(shortcut, stateLockObject) { + if (stateLockObject == 'unlock') { + cy.get('.cvat-canvas-container').within(() => { + cy.get('.cvat_canvas_shape') + .trigger('mousemove') + .should('have.class', 'cvat_canvas_shape_activated'); + }); + }; + cy.get('body') .type(shortcut); }; - function deleteObjectViaGUI() { - cy.get('div.cvat-objects-sidebar-state-item').within(() => { - cy.get('i.ant-dropdown-trigger').click(); + function clickRemoveOnDropdownMenu() { + cy.get('.ant-dropdown') + .not('.ant-dropdown-hidden') + .contains(new RegExp('^Remove$', 'g')) + .click({ force: true }); + }; + + function deleteObjectViaGUIFromSidebar() { + cy.get('.cvat-objects-sidebar-states-list').within(() => { + cy.get('.cvat-objects-sidebar-state-item').within(() => { + cy.get('[aria-label="icon: more"]').click(); + }); }); - cy.get('ul.cvat-object-item-menu').within(() => { - cy.contains('Remove').click(); + clickRemoveOnDropdownMenu(); + }; + + function deleteObjectViaGUIFromObject() { + cy.get('.cvat-canvas-container').within(() => { + cy.get('.cvat_canvas_shape') + .trigger('mousemove') + .rightclick(); }); + cy.get('.cvat-canvas-context-menu').within(() => { + cy.get('.cvat-objects-sidebar-state-item').within(() => { + cy.get('[aria-label="icon: more"]').click(); + }); + }); + clickRemoveOnDropdownMenu(); }; - function confirmationToDelete() { + function actionOnConfirmWindow(textBuntton) { cy.get('.ant-modal-confirm').within(() => { - cy.contains('OK').click(); + cy.contains(new RegExp(`^${textBuntton}$`, 'g')) + .click(); }); }; function checkFailDeleteLockObject(shortcut) { - deleteObjectViaShortcut(shortcut); - cy.get('rect.cvat_canvas_shape').should('exist'); - cy.get('div.cvat-objects-sidebar-state-item').should('exist'); - cy.contains('.ant-notification-topRight', 'Error: Could not remove the locked object').should('exist'); + deleteObjectViaShortcut(shortcut, 'lock'); + checkExistObject(); + cy.get('.ant-notification-topRight').should('exist'); }; function checkExistObject() { - cy.get('rect.cvat_canvas_shape').should('not.exist'); - cy.get('div.cvat-objects-sidebar-state-item').should('not.exist'); + cy.get('.cvat_canvas_shape').should('exist'); + cy.get('.cvat-objects-sidebar-state-item').should('exist'); + }; + + function checkNotExistObject() { + cy.get('.cvat_canvas_shape').should('not.exist'); + cy.get('.cvat-objects-sidebar-state-item').should('not.exist'); }; before(() => { @@ -66,29 +97,37 @@ context('Delete unlock/lock object', () => { describe(`Testing case "${caseId}"`, () => { it('Create and delete object via "Delete" shortcut', () => { cy.createRectangle(createRectangleShape2Points); - deleteObjectViaShortcut('{del}'); - checkExistObject(); + deleteObjectViaShortcut('{del}', 'unlock'); + checkNotExistObject(); }); - it('Create and delete object via GUI', () => { + it('Create and delete object via GUI from sidebar', () => { cy.createRectangle(createRectangleShape2Points); - deleteObjectViaGUI(); - checkExistObject(); + deleteObjectViaGUIFromSidebar(); + checkNotExistObject(); }); it('Create, lock and delete object via "Shift+Delete" shortcuts', () => { cy.createRectangle(createRectangleShape2Points); lockObject(); checkFailDeleteLockObject('{del}'); - deleteObjectViaShortcut('{shift}{del}'); - checkExistObject(); + deleteObjectViaShortcut('{shift}{del}', 'lock'); + checkNotExistObject(); + }); + + it('Create, lock and delete object via GUI from sidebar', () => { + cy.createRectangle(createRectangleShape2Points); + lockObject(); + deleteObjectViaGUIFromSidebar(); + actionOnConfirmWindow('OK'); + checkNotExistObject(); }); - it('Create, lock and delete object via GUI', () => { + it('Create, lock and cancel delete object via GUI from object', () => { cy.createRectangle(createRectangleShape2Points); lockObject(); - deleteObjectViaGUI(); - confirmationToDelete(); + deleteObjectViaGUIFromObject(); + actionOnConfirmWindow('Cancel'); checkExistObject(); }); });