diff --git a/tests/cypress/integration/actions_tasks_objects/case_41_add_delete_label_attribute.js b/tests/cypress/integration/actions_tasks_objects/case_41_add_delete_label_attribute.js new file mode 100644 index 000000000000..82db7dae033c --- /dev/null +++ b/tests/cypress/integration/actions_tasks_objects/case_41_add_delete_label_attribute.js @@ -0,0 +1,71 @@ +// Copyright (C) 2021 Intel Corporation +// +// SPDX-License-Identifier: MIT + +/// + +context('Add/delete labels and attributes.', () => { + const caseId = '41'; + const labelName = `Case ${caseId}`; + const attrName = `Attr for ${labelName}`; + const textDefaultValue = 'Some default value for type Text'; + + before(() => { + cy.visit('auth/login'); + cy.login(); + cy.get('#cvat-create-task-button').click(); + }); + + describe(`Testing "${labelName}"`, () => { + it('Start adding a label. Press Cancel. The label is not created.', () => { + cy.get('.cvat-constructor-viewer-new-item').click(); // Open label constructor + cy.get('[placeholder="Label name"]').type(labelName); + cy.contains('[type="button"]', 'Cancel').click(); + cy.get('.cvat-constructor-viewer-item').should('not.exist'); + }); + + it('Start adding a label. Start adding an attribute. Press Cancel. The label is not created.', () => { + cy.get('.cvat-constructor-viewer-new-item').click(); + cy.get('[placeholder="Label name"]').type(labelName); + cy.get('.cvat-new-attribute-button').click(); + cy.get('.cvat-attribute-name-input').type(attrName); + cy.get('.cvat-attribute-type-input').click(); + cy.get('.cvat-attribute-type-input-text').click(); + cy.get('.cvat-attribute-values-input').type(textDefaultValue); + cy.contains('[type="button"]', 'Cancel').click(); + cy.get('.cvat-constructor-viewer-item').should('not.exist'); + }); + + it('Start adding a label. Add an attribute. Press Done. The label should be created.', () => { + cy.get('.cvat-constructor-viewer-new-item').click(); + cy.get('[placeholder="Label name"]').type(labelName); + cy.get('.cvat-new-attribute-button').click(); + cy.get('.cvat-attribute-name-input').type(attrName); + cy.get('.cvat-attribute-type-input').click(); + cy.get('.cvat-attribute-type-input-text').click(); + cy.get('.cvat-attribute-values-input').type(textDefaultValue); + cy.contains('[type="submit"]', 'Done').click(); + cy.get('.cvat-constructor-viewer-item').should('exist'); + }); + + it('Start to edit the label. Attribute should exist. Remove the atrribute. Press Done.', () => { + cy.get('.cvat-constructor-viewer-item').find('[aria-label="edit"]').click(); + cy.get('.cvat-attribute-inputs-wrapper') + .should('exist') + .within(() => { + cy.get('.cvat-delete-attribute-button').click(); + }); + cy.get('.cvat-attribute-inputs-wrapper').should('not.exist'); + cy.contains('[type="submit"]', 'Done').click(); + // After deleting the attribute and saving the changes, check that the attribute is missing. + cy.get('.cvat-constructor-viewer-item').find('[aria-label="edit"]').click(); + cy.get('.cvat-attribute-inputs-wrapper').should('not.exist'); + cy.contains('[type="button"]', 'Cancel').click(); + }); + + it('Delete the added label. The label removed.', () => { + cy.get('.cvat-constructor-viewer-item').find('[aria-label="close"]').click(); + cy.get('.cvat-constructor-viewer-item').should('not.exist'); + }); + }); +});