From 81cd6aefb116d8970339897696814b0270ead25f Mon Sep 17 00:00:00 2001
From: Dmitry Kruchinin <33020454+dvkruchinin@users.noreply.github.com>
Date: Fri, 26 Feb 2021 10:40:27 +0300
Subject: [PATCH] Cypress test. Object propagate. (#2867)
* Add css classes
* Cypress test. Propagate object.
* Cypress test. Object propagation no on last frame.
* Try fix eslint "Unable to resolve path to module"
* Apply comments.
---
cvat-ui/.eslintrc.js | 2 +-
.../standard-workspace/propagate-confirm.tsx | 4 +-
.../case_53_object_propagate.js | 88 +++++++++++++++++++
3 files changed, 92 insertions(+), 2 deletions(-)
create mode 100644 tests/cypress/integration/actions_tasks_objects/case_53_object_propagate.js
diff --git a/cvat-ui/.eslintrc.js b/cvat-ui/.eslintrc.js
index 0c726f04..28d9241e 100644
--- a/cvat-ui/.eslintrc.js
+++ b/cvat-ui/.eslintrc.js
@@ -59,7 +59,7 @@ module.exports = {
settings: {
'import/resolver': {
node: {
- paths: ['src'],
+ paths: ['src', `${__dirname}/src`],
},
},
},
diff --git a/cvat-ui/src/components/annotation-page/standard-workspace/propagate-confirm.tsx b/cvat-ui/src/components/annotation-page/standard-workspace/propagate-confirm.tsx
index 1ac36d16..6b5b6bd9 100644
--- a/cvat-ui/src/components/annotation-page/standard-workspace/propagate-confirm.tsx
+++ b/cvat-ui/src/components/annotation-page/standard-workspace/propagate-confirm.tsx
@@ -1,4 +1,4 @@
-// Copyright (C) 2020 Intel Corporation
+// Copyright (C) 2020-2021 Intel Corporation
//
// SPDX-License-Identifier: MIT
@@ -49,6 +49,7 @@ export default function PropagateConfirmComponent(props: Props): JSX.Element {
Do you want to make a copy of the object on
1 ? frames : frame }
up to the
+
+import { taskName, labelName } from '../../support/const';
+
+context('Object propagate.', () => {
+ const caseId = '53';
+ const createCuboidShape2Points = {
+ points: 'From rectangle',
+ type: 'Shape',
+ labelName: labelName,
+ firstX: 250,
+ firstY: 350,
+ secondX: 350,
+ secondY: 450,
+ };
+ const propagateOnOneFrame = 1;
+ const propagateOnTwoFrames = 2;
+
+ function startPropagation() {
+ cy.get('#cvat-objects-sidebar-state-item-1').find('[aria-label="more"]').trigger('mouseover');
+ cy.get('.cvat-object-item-menu').within(() => {
+ cy.contains('button', 'Propagate').click();
+ });
+ }
+
+ before(() => {
+ cy.openTaskJob(taskName);
+ cy.createCuboid(createCuboidShape2Points);
+ });
+
+ describe(`Testing case "${caseId}"`, () => {
+ it('On the 1st frame propagate object on 1 frame.', () => {
+ startPropagation();
+ cy.get('.cvat-propagate-confirm-object-on-frames') // Change value in the "copy of the object on frame" field
+ .find('input')
+ .clear()
+ .type(propagateOnOneFrame);
+ cy.get('.cvat-propagate-confirm-object-up-to-frame') // Value of "up to the frame" field should be same
+ .find('input')
+ .should('have.attr', 'value', propagateOnOneFrame);
+ cy.contains('button', 'Yes').click();
+ });
+
+ it('On the 1st and 2nd frames, the number of objects is equal to 1. On the 3rd frame is 0.', () => {
+ cy.get('.cvat_canvas_shape_cuboid').then(($cuboidCountFirstFrame) => {
+ cy.goCheckFrameNumber(1); // Go to 2nd frame
+ cy.get('.cvat_canvas_shape_cuboid').then(($cuboidCountSecondFrame) => {
+ expect($cuboidCountFirstFrame.length).to.be.equal($cuboidCountSecondFrame.length);
+ });
+ });
+ cy.goCheckFrameNumber(2); // Go to 3rd frame
+ cy.get('.cvat_canvas_shape_cuboid').should('not.exist');
+ cy.get('.cvat-player-first-button').click();
+ });
+
+ it('From the 1st frame propagate again on 2 frames.', () => {
+ startPropagation();
+ cy.get('.cvat-propagate-confirm-object-up-to-frame') // Change value in the "up to the frame" field
+ .find('input')
+ .clear()
+ .type(propagateOnTwoFrames)
+ .should('have.attr', 'value', propagateOnTwoFrames);
+ cy.get('.cvat-propagate-confirm-object-on-frames') // Value of "copy of the object on frames" field should be same
+ .find('input')
+ .should('have.attr', 'value', propagateOnTwoFrames);
+ cy.contains('button', 'Yes').click();
+ });
+
+ it('On the 1st and 3rd frames the number of objects is equal to 1. On the 2nd frame equal to 2. On the 4th frame equal to 0', () => {
+ cy.get('.cvat_canvas_shape_cuboid').then(($cuboidCountFirstFrame) => {
+ cy.goCheckFrameNumber(2); // Go to 3rd frame
+ cy.get('.cvat_canvas_shape_cuboid').then(($cuboidCountThirdFrame) => {
+ expect($cuboidCountFirstFrame.length).to.be.equal($cuboidCountThirdFrame.length);
+ });
+ });
+ cy.goCheckFrameNumber(1); // Go to 2nd frame
+ cy.get('.cvat_canvas_shape_cuboid').then(($cuboidCountSecondFrame) => {
+ expect($cuboidCountSecondFrame.length).to.be.equal(2);
+ });
+ cy.goCheckFrameNumber(3); // Go to 4th frame
+ cy.get('.cvat_canvas_shape_cuboid').should('not.exist');
+ });
+ });
+});