Cypress test. Drawing with predefined number points. (#2583)
* Cypress test. Drawing with predefined number of points. * Updated version. * Fix typo * Add css class for modal window. Rework cypress command for remove annotation. Co-authored-by: Kruchinin <dmitryx.kruchinin@intel.com>main
parent
8285e8bdd1
commit
2c88e2ddb5
@ -0,0 +1,113 @@
|
|||||||
|
// Copyright (C) 2020 Intel Corporation
|
||||||
|
//
|
||||||
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
|
/// <reference types="cypress" />
|
||||||
|
|
||||||
|
import { taskName, labelName } from '../../support/const';
|
||||||
|
|
||||||
|
context('Drawing with predefined number of points.', () => {
|
||||||
|
const caseId = '34';
|
||||||
|
const countPointsPolygon = 3;
|
||||||
|
const countPointsPolyline = 2;
|
||||||
|
const countPointsPoint = 1;
|
||||||
|
|
||||||
|
const createPolygonShape = {
|
||||||
|
reDraw: false,
|
||||||
|
type: 'Shape',
|
||||||
|
labelName: labelName,
|
||||||
|
pointsMap: [
|
||||||
|
{ x: 500, y: 100 },
|
||||||
|
{ x: 600, y: 100 },
|
||||||
|
{ x: 500, y: 200 },
|
||||||
|
],
|
||||||
|
numberOfPoints: 3,
|
||||||
|
};
|
||||||
|
const createPolylinesShape = {
|
||||||
|
type: 'Shape',
|
||||||
|
labelName: labelName,
|
||||||
|
pointsMap: [
|
||||||
|
{ x: 500, y: 250 },
|
||||||
|
{ x: 600, y: 250 },
|
||||||
|
],
|
||||||
|
numberOfPoints: 2,
|
||||||
|
};
|
||||||
|
const createPointsShape = {
|
||||||
|
type: 'Shape',
|
||||||
|
labelName: labelName,
|
||||||
|
pointsMap: [{ x: 500, y: 200 }],
|
||||||
|
numberOfPoints: 1,
|
||||||
|
};
|
||||||
|
|
||||||
|
before(() => {
|
||||||
|
cy.openTaskJob(taskName);
|
||||||
|
});
|
||||||
|
|
||||||
|
function tryDrawObjectPredefinedNumberPoints(object, pointsCount) {
|
||||||
|
cy.get(`.cvat-draw-${object}-control`).click().wait(500);
|
||||||
|
cy.get('.cvat-draw-shape-popover')
|
||||||
|
.not('.ant-popover-hidden')
|
||||||
|
.within(() => {
|
||||||
|
cy.get('.cvat-draw-shape-popover-points-selector')
|
||||||
|
.type(`${pointsCount - 1}`)
|
||||||
|
.focused()
|
||||||
|
.tab();
|
||||||
|
cy.get('[role="spinbutton"]').should('have.attr', 'aria-valuenow', pointsCount);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function tryDeletePoint() {
|
||||||
|
let svgJsCircleId = [];
|
||||||
|
cy.get('#cvat_canvas_shape_1').trigger('mousemove').should('have.attr', 'fill-opacity', 0.3);
|
||||||
|
cy.get('circle').then((circle) => {
|
||||||
|
for (let i = 0; i < circle.length; i++) {
|
||||||
|
if (circle[i].id.match(/^SvgjsCircle\d+$/)) {
|
||||||
|
svgJsCircleId.push(circle[i].id);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
cy.get(`#${svgJsCircleId[0]}`).click({ altKey: true });
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function checkNotificationAndClose() {
|
||||||
|
cy.get('.cvat-notification-notice-update-annotations-failed')
|
||||||
|
.should('exist')
|
||||||
|
.within(() => {
|
||||||
|
cy.get('[aria-label="close"]').click();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
describe(`Testing case "${caseId}"`, () => {
|
||||||
|
it('Start drawing a polygon. Set "Number of points" less then 3 and press Tab. "Number of points" takes the value 3 automatically.', () => {
|
||||||
|
tryDrawObjectPredefinedNumberPoints('polygon', countPointsPolygon);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('Draw a polygon with 3 points. And try to delete one point. The error notification should appear.', () => {
|
||||||
|
cy.createPolygon(createPolygonShape);
|
||||||
|
tryDeletePoint();
|
||||||
|
checkNotificationAndClose();
|
||||||
|
cy.removeAnnotations(); // Removing the annotation for the convenience of further testing
|
||||||
|
});
|
||||||
|
|
||||||
|
it('Start drawing a polyline. Set "Number of points" less then 2 and press Tab. "Number of points" takes the value 2 automatically.', () => {
|
||||||
|
tryDrawObjectPredefinedNumberPoints('polyline', countPointsPolyline);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('Draw a polyline with 2 points. And try to delete one point. The error notification should appear.', () => {
|
||||||
|
cy.createPolyline(createPolylinesShape);
|
||||||
|
tryDeletePoint();
|
||||||
|
checkNotificationAndClose();
|
||||||
|
cy.removeAnnotations(); // Removing the annotation for the convenience of further testing
|
||||||
|
});
|
||||||
|
|
||||||
|
it('Start drawing a point. Set "Number of points" less then 1 and press Tab. "Number of points" takes the value 1 automatically.', () => {
|
||||||
|
tryDrawObjectPredefinedNumberPoints('points', countPointsPoint);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('Draw a point with 1 points. And try to delete one point. The error notification should appear.', () => {
|
||||||
|
cy.createPoint(createPointsShape);
|
||||||
|
tryDeletePoint();
|
||||||
|
checkNotificationAndClose();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
Loading…
Reference in New Issue