From 3c3465dd8e4b07a60a6ab7a1f1a2aa532cba937b Mon Sep 17 00:00:00 2001 From: Dmitry Kruchinin <33020454+dvkruchinin@users.noreply.github.com> Date: Mon, 16 Aug 2021 18:33:59 +0300 Subject: [PATCH] Cypress test. Update cases dump/upload annotations. (#3545) * Update cypress tests * Added wait to command. Removed from tetst. * Added rename archive to export dataset 3d functionality --- .../case_52_dump_upload_annotation.js | 48 ++++++--- .../actions_tasks3/case_47_export_dataset.js | 39 +++++--- ...mp_upload_annotation_point_cloud_format.js | 97 ++++++++++--------- ...pload_annotation_velodyne_points_format.js | 93 ++++++++++-------- ...3_canvas3d_functionality_export_dataset.js | 57 +++++++---- .../issue_1568_cuboid_dump_annotation.js | 21 ++-- tests/cypress/support/commands.js | 20 ++++ tests/cypress_canvas3d.json | 1 + 8 files changed, 234 insertions(+), 142 deletions(-) diff --git a/tests/cypress/integration/actions_tasks/case_52_dump_upload_annotation.js b/tests/cypress/integration/actions_tasks/case_52_dump_upload_annotation.js index ec131b67..92756549 100644 --- a/tests/cypress/integration/actions_tasks/case_52_dump_upload_annotation.js +++ b/tests/cypress/integration/actions_tasks/case_52_dump_upload_annotation.js @@ -34,8 +34,9 @@ context('Dump/Upload annotation.', { browser: '!firefox' }, () => { const imagesFolder = `cypress/fixtures/${imageFileName}`; const directoryToArchive = imagesFolder; - const dumpType = 'CVAT for images'; + const exportFormat = 'CVAT for images'; let annotationArchiveName = ''; + let annotationArchiveNameCustomeName = ''; function uploadToTask(toTaskName) { cy.contains('.cvat-item-task-name', toTaskName) @@ -43,13 +44,13 @@ context('Dump/Upload annotation.', { browser: '!firefox' }, () => { .find('.cvat-menu-icon') .trigger('mouseover'); cy.contains('Upload annotations').trigger('mouseover'); - cy.contains('.cvat-menu-load-submenu-item', dumpType.split(' ')[0]) + cy.contains('.cvat-menu-load-submenu-item', exportFormat.split(' ')[0]) .should('be.visible') .within(() => { cy.get('.cvat-menu-load-submenu-item-button') .click() .get('input[type=file]') - .attachFile(annotationArchiveName); + .attachFile(annotationArchiveNameCustomeName); }); } @@ -65,24 +66,39 @@ context('Dump/Upload annotation.', { browser: '!firefox' }, () => { }); describe(`Testing case "${caseId}"`, () => { - it('Save job. Dump annotation. Remove annotation. Save job.', () => { + it('Save job. Dump annotation with renaming the archive.', () => { cy.saveJob('PATCH', 200, 'saveJobDump'); - cy.intercept('GET', '/api/v1/tasks/**/annotations**').as('dumpAnnotations'); - cy.interactMenu('Export task dataset'); - cy.get('.cvat-modal-export-task').within(() => { - cy.get('.cvat-modal-export-select').should('contain.text', dumpType); - cy.contains('button', 'OK').click(); + const exportAnnotationRenameArchive = { + as: 'exportAnnotationsRenameArchive', + type: 'annotations', + format: exportFormat, + archiveCustomeName: 'task_export_annotation_custome_name' + }; + cy.exportTask(exportAnnotationRenameArchive); + const regex = new RegExp(`^${exportAnnotationRenameArchive.archiveCustomeName}.zip$`); + cy.task('listFiles', 'cypress/fixtures').each((fileName) => { + if (fileName.match(regex)) { + cy.readFile(`cypress/fixtures/${fileName}`).should('exist'); + annotationArchiveNameCustomeName = fileName; + } }); - cy.wait('@dumpAnnotations', { timeout: 5000 }).its('response.statusCode').should('equal', 202); - cy.wait('@dumpAnnotations').its('response.statusCode').should('equal', 201); + }); + + it('Save job. Dump annotation. Remove annotation. Save job.', () => { + const exportAnnotation = { + as: 'exportAnnotations', + type: 'annotations', + format: exportFormat, + }; + cy.exportTask(exportAnnotation); cy.removeAnnotations(); cy.saveJob('PUT'); cy.get('#cvat_canvas_shape_1').should('not.exist'); cy.get('#cvat-objects-sidebar-state-item-1').should('not.exist'); - - cy.wait(2000); // Waiting for the full download. + const regex = new RegExp(`^task_${taskName.toLowerCase()}-.*-${exportAnnotation.format.toLowerCase()}.*.zip$`); cy.task('listFiles', 'cypress/fixtures').each((fileName) => { - if (fileName.includes(dumpType.toLowerCase())) { + if (fileName.match(regex)) { + cy.readFile(`cypress/fixtures/${fileName}`).should('exist'); annotationArchiveName = fileName; } }); @@ -90,7 +106,7 @@ context('Dump/Upload annotation.', { browser: '!firefox' }, () => { it('Upload annotation to job.', () => { cy.interactMenu('Upload annotations'); - cy.contains('.cvat-menu-load-submenu-item', dumpType.split(' ')[0]) + cy.contains('.cvat-menu-load-submenu-item', exportFormat.split(' ')[0]) .should('be.visible') .within(() => { cy.get('.cvat-menu-load-submenu-item-button') @@ -107,6 +123,8 @@ context('Dump/Upload annotation.', { browser: '!firefox' }, () => { cy.get('#cvat_canvas_shape_1').should('exist'); cy.get('#cvat-objects-sidebar-state-item-1').should('exist'); cy.removeAnnotations(); + cy.get('#cvat_canvas_shape_1').should('not.exist'); + cy.get('#cvat-objects-sidebar-state-item-1').should('not.exist'); }); it('Upload annotation to task.', () => { diff --git a/tests/cypress/integration/actions_tasks3/case_47_export_dataset.js b/tests/cypress/integration/actions_tasks3/case_47_export_dataset.js index 6de7a7cd..059ed40d 100644 --- a/tests/cypress/integration/actions_tasks3/case_47_export_dataset.js +++ b/tests/cypress/integration/actions_tasks3/case_47_export_dataset.js @@ -26,18 +26,35 @@ context('Export task dataset.', () => { }); describe(`Testing case "${caseId}"`, () => { - it(`Go to Menu. Press "Export task dataset" with the "${exportFormat}" format.`, () => { - cy.intercept('GET', '/api/v1/tasks/**/dataset**').as('exportDataset'); - cy.interactMenu('Export task dataset'); - cy.get('.cvat-modal-export-task').within(() => { - cy.get('.cvat-modal-export-select').should('contain.text', exportFormat); - cy.get('[type="checkbox"]').should('not.be.checked').check(); - cy.contains('button', 'OK').click(); + it('Export a task as dataset.', () => { + const exportDataset = { + as: 'exportDataset', + type: 'dataset', + format: exportFormat, + }; + cy.exportTask(exportDataset); + const regex = new RegExp(`^task_${taskName.toLowerCase()}-.*-${exportDataset.format.toLowerCase()}.*.zip$`); + cy.task('listFiles', 'cypress/fixtures').each((fileName) => { + if (fileName.match(regex)) { + cy.readFile(`cypress/fixtures/${fileName}`).should('exist'); + } + }); + }); + + it('Export a task as dataset with renaming the archive.', () => { + const exportDataset = { + as: 'exportDatasetRenameArchive', + type: 'dataset', + format: exportFormat, + archiveCustomeName: 'task_export_dataset_custome_name' + }; + cy.exportTask(exportDataset); + const regex = new RegExp(`^${exportDataset.archiveCustomeName}.zip$`); + cy.task('listFiles', 'cypress/fixtures').each((fileName) => { + if (fileName.match(regex)) { + cy.readFile(`cypress/fixtures/${fileName}`).should('exist'); + } }); - cy.get('.cvat-notification-notice-export-task-start').should('exist'); - cy.closeNotification('.cvat-notification-notice-export-task-start'); - cy.wait('@exportDataset', { timeout: 5000 }).its('response.statusCode').should('equal', 202); - cy.wait('@exportDataset').its('response.statusCode').should('equal', 201); }); }); }); diff --git a/tests/cypress/integration/canvas3d_functionality/case_91_canvas3d_functionality_dump_upload_annotation_point_cloud_format.js b/tests/cypress/integration/canvas3d_functionality/case_91_canvas3d_functionality_dump_upload_annotation_point_cloud_format.js index a87a6a2c..f894260e 100644 --- a/tests/cypress/integration/canvas3d_functionality/case_91_canvas3d_functionality_dump_upload_annotation_point_cloud_format.js +++ b/tests/cypress/integration/canvas3d_functionality/case_91_canvas3d_functionality_dump_upload_annotation_point_cloud_format.js @@ -13,6 +13,7 @@ context('Canvas 3D functionality. Dump/upload annotation. "Point Cloud" format', }; const dumpTypePC = 'Sly Point Cloud Format'; let annotationPCArchiveName = ''; + let annotationPCArchiveCustomeName = ''; function confirmUpdate(modalWindowClassName) { cy.get(modalWindowClassName).within(() => { @@ -20,63 +21,54 @@ context('Canvas 3D functionality. Dump/upload annotation. "Point Cloud" format', }); } - 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.readFile('cypress/downloads/' + annotationPCArchiveName, 'binary') - .then(Cypress.Blob.binaryStringToBlob) - .then((fileContent) => { - cy.contains('.cvat-menu-load-submenu-item', dumpTypePC.split(' ')[0]) - .should('be.visible') - .within(() => { - cy.get('.cvat-menu-load-submenu-item-button').click().get('input[type=file]').attachFile({ - fileName: annotationPCArchiveName, - fileContent: fileContent, - }); - }); - }); - } - before(() => { cy.openTask(taskName); cy.openJob(); cy.wait(1000); // Waiting for the point cloud to display cy.create3DCuboid(cuboidCreationParams); + cy.saveJob('PATCH', 200, 'saveJob'); }); describe(`Testing case "${caseId}"`, () => { - it('Save a job. Dump with "Point Cloud" format.', () => { - cy.saveJob('PATCH', 200, 'saveJob'); - cy.intercept('GET', '/api/v1/tasks/**/annotations**').as('dumpAnnotations'); - cy.interactMenu('Export task dataset'); - cy.get('.cvat-modal-export-task').find('.cvat-modal-export-select').click(); - cy.get('.ant-select-dropdown') - .not('.ant-select-dropdown-hidden') - .contains('.cvat-modal-export-option-item', dumpTypePC) - .click(); - cy.get('.cvat-modal-export-select').should('contain.text', dumpTypePC); - cy.get('.cvat-modal-export-task').contains('button', 'OK').click(); - cy.wait('@dumpAnnotations', { timeout: 5000 }).its('response.statusCode').should('equal', 202); - cy.wait('@dumpAnnotations').its('response.statusCode').should('equal', 201); - cy.removeAnnotations(); - cy.saveJob('PUT'); - cy.get('#cvat-objects-sidebar-state-item-1').should('not.exist'); - - cy.wait(2000); // Waiting for the full download. - cy.task('listFiles', 'cypress/downloads').each((fileName) => { - if (fileName.includes(dumpTypePC.toLowerCase())) { + it('Export with "Point Cloud" format.', () => { + const exportAnnotation = { + as: 'exportAnnotations', + type: 'annotations', + format: dumpTypePC, + }; + cy.exportTask(exportAnnotation); + const regex = new RegExp(`^task_${taskName.toLowerCase()}-.*-${exportAnnotation.format.toLowerCase()}.*.zip$`); + cy.task('listFiles', 'cypress/fixtures').each((fileName) => { + if (fileName.match(regex)) { + cy.readFile(`cypress/fixtures/${fileName}`).should('exist'); annotationPCArchiveName = fileName; } }); }); + it('Export with "Point Cloud" format. Renaming the archive', () => { + const exportAnnotationRenameArchive = { + as: 'exportAnnotationsRenameArchive', + type: 'annotations', + format: dumpTypePC, + archiveCustomeName: 'task_export_3d_annotation_custome_name_pc_format' + }; + cy.exportTask(exportAnnotationRenameArchive); + const regex = new RegExp(`^${exportAnnotationRenameArchive.archiveCustomeName}.zip$`); + cy.task('listFiles', 'cypress/fixtures').each((fileName) => { + if (fileName.match(regex)) { + cy.readFile(`cypress/fixtures/${fileName}`).should('exist'); + annotationPCArchiveCustomeName = fileName; + } + }); + cy.removeAnnotations(); + cy.saveJob('PUT'); + cy.get('#cvat-objects-sidebar-state-item-1').should('not.exist'); + }); + it('Upload "Point Cloud" format annotation to job.', () => { cy.interactMenu('Upload annotations'); - - cy.readFile('cypress/downloads/' + annotationPCArchiveName, 'binary') + cy.readFile('cypress/fixtures/' + annotationPCArchiveName, 'binary') .then(Cypress.Blob.binaryStringToBlob) .then((fileContent) => { cy.contains('.cvat-menu-load-submenu-item', dumpTypePC.split(' ')[0]) @@ -98,11 +90,28 @@ context('Canvas 3D functionality. Dump/upload annotation. "Point Cloud" format', cy.get('#cvat-objects-sidebar-state-item-1').should('exist'); cy.removeAnnotations(); cy.get('button').contains('Save').click({ force: true }); + cy.get('#cvat-objects-sidebar-state-item-1').should('not.exist'); }); - it('Upload annotation to task.', () => { + it('Upload annotation from the archive with a custom name to task.', () => { cy.goToTaskList(); - uploadToTask(taskName); + cy.contains('.cvat-item-task-name', taskName) + .parents('.cvat-tasks-list-item') + .find('.cvat-menu-icon') + .trigger('mouseover'); + cy.contains('Upload annotations').trigger('mouseover'); + cy.readFile('cypress/fixtures/' + annotationPCArchiveCustomeName, 'binary') + .then(Cypress.Blob.binaryStringToBlob) + .then((fileContent) => { + cy.contains('.cvat-menu-load-submenu-item', dumpTypePC.split(' ')[0]) + .should('be.visible') + .within(() => { + cy.get('.cvat-menu-load-submenu-item-button').click().get('input[type=file]').attachFile({ + fileName: annotationPCArchiveCustomeName, + fileContent: fileContent, + }); + }); + }); confirmUpdate('.cvat-modal-content-load-task-annotation'); cy.contains('Annotations have been loaded').should('be.visible'); cy.get('[data-icon="close"]').click(); diff --git a/tests/cypress/integration/canvas3d_functionality/case_92_canvas3d_functionality_dump_upload_annotation_velodyne_points_format.js b/tests/cypress/integration/canvas3d_functionality/case_92_canvas3d_functionality_dump_upload_annotation_velodyne_points_format.js index e2ef8c41..6a15db2d 100644 --- a/tests/cypress/integration/canvas3d_functionality/case_92_canvas3d_functionality_dump_upload_annotation_velodyne_points_format.js +++ b/tests/cypress/integration/canvas3d_functionality/case_92_canvas3d_functionality_dump_upload_annotation_velodyne_points_format.js @@ -13,6 +13,7 @@ context('Canvas 3D functionality. Dump/upload annotation. "Velodyne Points" form }; const dumpTypeVC = 'Kitti Raw Format'; let annotationVCArchiveName = ''; + let annotationVCArchiveNameCustomeName = ''; function confirmUpdate(modalWindowClassName) { cy.get(modalWindowClassName).within(() => { @@ -20,62 +21,54 @@ context('Canvas 3D functionality. Dump/upload annotation. "Velodyne Points" form }); } - 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.readFile('cypress/downloads/' + annotationVCArchiveName, 'binary') - .then(Cypress.Blob.binaryStringToBlob) - .then((fileContent) => { - cy.contains('.cvat-menu-load-submenu-item', dumpTypeVC.split(' ')[0]) - .should('be.visible') - .within(() => { - cy.get('.cvat-menu-load-submenu-item-button').click().get('input[type=file]').attachFile({ - fileContent: fileContent, - fileName: annotationVCArchiveName, - }); - }); - }); - } - before(() => { cy.openTask(taskName); cy.openJob(); cy.wait(1000); // Waiting for the point cloud to display cy.create3DCuboid(cuboidCreationParams); + cy.saveJob('PATCH', 200, 'saveJob'); }); describe(`Testing case "${caseId}"`, () => { - it('Save a job. Dump with "Velodyne Points" format.', () => { - cy.saveJob('PATCH', 200, 'saveJob'); - cy.intercept('GET', '/api/v1/tasks/**/annotations**').as('dumpAnnotations'); - cy.interactMenu('Export task dataset'); - cy.get('.cvat-modal-export-task').find('.cvat-modal-export-select').click(); - cy.get('.ant-select-dropdown') - .not('.ant-select-dropdown-hidden') - .contains('.cvat-modal-export-option-item', dumpTypeVC) - .click(); - cy.get('.cvat-modal-export-select').should('contain.text', dumpTypeVC); - cy.get('.cvat-modal-export-task').contains('button', 'OK').click(); - cy.wait('@dumpAnnotations', { timeout: 5000 }).its('response.statusCode').should('equal', 202); - cy.wait('@dumpAnnotations').its('response.statusCode').should('equal', 201); - cy.removeAnnotations(); - cy.saveJob('PUT'); - cy.get('#cvat-objects-sidebar-state-item-1').should('not.exist'); - - cy.wait(2000); // Waiting for the full download. - cy.task('listFiles', 'cypress/downloads').each((fileName) => { - if (fileName.includes(dumpTypeVC.toLowerCase())) { + it('Export with "Velodyne Points" format.', () => { + const exportAnnotation = { + as: 'exportAnnotations', + type: 'annotations', + format: dumpTypeVC, + }; + cy.exportTask(exportAnnotation); + const regex = new RegExp(`^task_${taskName.toLowerCase()}-.*-${exportAnnotation.format.toLowerCase()}.*.zip$`); + cy.task('listFiles', 'cypress/fixtures').each((fileName) => { + if (fileName.match(regex)) { + cy.readFile(`cypress/fixtures/${fileName}`).should('exist'); annotationVCArchiveName = fileName; } }); }); + it('Export with "Point Cloud" format. Renaming the archive', () => { + const exportAnnotationRenameArchive = { + as: 'exportAnnotationsRenameArchive', + type: 'annotations', + format: dumpTypeVC, + archiveCustomeName: 'task_export_3d_annotation_custome_name_vc_format' + }; + cy.exportTask(exportAnnotationRenameArchive); + const regex = new RegExp(`^${exportAnnotationRenameArchive.archiveCustomeName}.zip$`); + cy.task('listFiles', 'cypress/fixtures').each((fileName) => { + if (fileName.match(regex)) { + cy.readFile(`cypress/fixtures/${fileName}`).should('exist'); + annotationVCArchiveNameCustomeName = fileName; + } + }); + cy.removeAnnotations(); + cy.saveJob('PUT'); + cy.get('#cvat-objects-sidebar-state-item-1').should('not.exist'); + }); + it('Upload "Velodyne Points" format annotation to job.', () => { cy.interactMenu('Upload annotations'); - cy.readFile('cypress/downloads/' + annotationVCArchiveName, 'binary') + cy.readFile('cypress/fixtures/' + annotationVCArchiveName, 'binary') .then(Cypress.Blob.binaryStringToBlob) .then((fileContent) => { cy.contains('.cvat-menu-load-submenu-item', dumpTypeVC.split(' ')[0]) @@ -100,7 +93,23 @@ context('Canvas 3D functionality. Dump/upload annotation. "Velodyne Points" form it('Upload annotation to task.', () => { cy.goToTaskList(); - uploadToTask(taskName); + cy.contains('.cvat-item-task-name', taskName) + .parents('.cvat-tasks-list-item') + .find('.cvat-menu-icon') + .trigger('mouseover'); + cy.contains('Upload annotations').trigger('mouseover'); + cy.readFile('cypress/fixtures/' + annotationVCArchiveNameCustomeName, 'binary') + .then(Cypress.Blob.binaryStringToBlob) + .then((fileContent) => { + cy.contains('.cvat-menu-load-submenu-item', dumpTypeVC.split(' ')[0]) + .should('be.visible') + .within(() => { + cy.get('.cvat-menu-load-submenu-item-button').click().get('input[type=file]').attachFile({ + fileName: annotationVCArchiveNameCustomeName, + fileContent: fileContent, + }); + }); + }); confirmUpdate('.cvat-modal-content-load-task-annotation'); cy.contains('Annotations have been loaded').should('be.visible'); cy.get('[data-icon="close"]').click(); diff --git a/tests/cypress/integration/canvas3d_functionality/case_93_canvas3d_functionality_export_dataset.js b/tests/cypress/integration/canvas3d_functionality/case_93_canvas3d_functionality_export_dataset.js index 1625feef..65ea0add 100644 --- a/tests/cypress/integration/canvas3d_functionality/case_93_canvas3d_functionality_export_dataset.js +++ b/tests/cypress/integration/canvas3d_functionality/case_93_canvas3d_functionality_export_dataset.js @@ -15,21 +15,6 @@ context('Canvas 3D functionality. Export as a dataset.', () => { const dumpTypePC = 'Sly Point Cloud Format'; const dumpTypeVC = 'Kitti Raw Format'; - function exportDataset (format, as) { - cy.intercept('GET', '/api/v1/tasks/**/dataset**').as(as); - cy.interactMenu('Export task dataset'); - cy.get('.cvat-modal-export-task').find('.cvat-modal-export-select').click(); - cy.get('.ant-select-dropdown') - .not('.ant-select-dropdown-hidden') - .contains('.cvat-modal-export-option-item', format) - .click(); - cy.get('.cvat-modal-export-select').should('contain.text', format); - cy.get('.cvat-modal-export-task').find('[type="checkbox"]').should('not.be.checked').check(); - cy.get('.cvat-modal-export-task').contains('button', 'OK').click(); - cy.wait(`@${as}`, { timeout: 5000 }).its('response.statusCode').should('equal', 202); - cy.wait(`@${as}`).its('response.statusCode').should('equal', 201); - } - before(() => { cy.openTask(taskName); cy.openJob(); @@ -40,11 +25,49 @@ context('Canvas 3D functionality. Export as a dataset.', () => { describe(`Testing case "${caseId}"`, () => { it('Export as a dataset with "Point Cloud" format.', () => { - exportDataset(dumpTypePC, 'exportDatasetPC'); + const exportDatasetPCFormat = { + as: 'exportDatasetPCFormat', + type: 'dataset', + format: dumpTypePC, + }; + cy.exportTask(exportDatasetPCFormat); + const regex = new RegExp(`^task_${taskName.toLowerCase()}-.*-${exportDatasetPCFormat.format.toLowerCase()}.*.zip$`); + cy.task('listFiles', 'cypress/fixtures').each((fileName) => { + if (fileName.match(regex)) { + cy.fixture(fileName).should('exist'); + } + }); }); it('Export as a dataset with "Velodyne Points" format.', () => { - exportDataset(dumpTypeVC, 'exportDatasetVC'); + const exportDatasetVCFormat = { + as: 'exportDatasetVCFormat', + type: 'dataset', + format: dumpTypeVC, + }; + cy.exportTask(exportDatasetVCFormat); + const regex = new RegExp(`^task_${taskName.toLowerCase()}-.*-${exportDatasetVCFormat.format.toLowerCase()}.*.zip$`); + cy.task('listFiles', 'cypress/fixtures').each((fileName) => { + if (fileName.match(regex)) { + cy.fixture(fileName).should('exist'); + } + }); + }); + + it('Export as a dataset with renaming the archive.', () => { + const exportDatasetVCFormatRenameArchive = { + as: 'exportDatasetVCFormatRenameArchive', + type: 'dataset', + format: dumpTypeVC, + archiveCustomeName: 'task_export_3d_dataset_custome_name_vc_format' + }; + cy.exportTask(exportDatasetVCFormatRenameArchive); + const regex = new RegExp(`^${exportDatasetVCFormatRenameArchive.archiveCustomeName}.zip$`); + cy.task('listFiles', 'cypress/fixtures').each((fileName) => { + if (fileName.match(regex)) { + cy.fixture(fileName).should('exist'); + } + }); cy.removeAnnotations(); cy.saveJob('PUT'); }); diff --git a/tests/cypress/integration/issues_prs2/issue_1568_cuboid_dump_annotation.js b/tests/cypress/integration/issues_prs2/issue_1568_cuboid_dump_annotation.js index 5565d906..7c37c922 100644 --- a/tests/cypress/integration/issues_prs2/issue_1568_cuboid_dump_annotation.js +++ b/tests/cypress/integration/issues_prs2/issue_1568_cuboid_dump_annotation.js @@ -17,7 +17,7 @@ context('Dump annotation if cuboid created.', () => { secondX: 350, secondY: 450, }; - const dumpType = 'Datumaro'; + const exportFormat = 'Datumaro'; before(() => { cy.openTaskJob(taskName); @@ -26,21 +26,16 @@ context('Dump annotation if cuboid created.', () => { describe(`Testing issue "${issueId}"`, () => { it('Create a cuboid.', () => { cy.createCuboid(createCuboidShape2Points); + cy.saveJob('PATCH', 200, `dump${exportFormat}Format`); }); it('Dump an annotation.', () => { - cy.saveJob('PATCH', 200, `dump${dumpType}Format`); - cy.intercept('GET', '/api/v1/tasks/**/annotations**').as('dumpAnnotations'); - cy.interactMenu('Export task dataset'); - cy.get('.cvat-modal-export-task').find('.cvat-modal-export-select').click(); - cy.get('.ant-select-dropdown') - .not('.ant-select-dropdown-hidden') - .contains('.cvat-modal-export-option-item', dumpType) - .click(); - cy.get('.cvat-modal-export-select').should('contain.text', dumpType); - cy.get('.cvat-modal-export-task').contains('button', 'OK').click(); - cy.wait('@dumpAnnotations', { timeout: 5000 }).its('response.statusCode').should('equal', 202); - cy.wait('@dumpAnnotations').its('response.statusCode').should('equal', 201); + const exportAnnotation = { + as: 'exportAnnotations', + type: 'annotations', + format: exportFormat, + }; + cy.exportTask(exportAnnotation); }); it('Error notification is not exists.', () => { diff --git a/tests/cypress/support/commands.js b/tests/cypress/support/commands.js index d463986d..41281b22 100644 --- a/tests/cypress/support/commands.js +++ b/tests/cypress/support/commands.js @@ -714,3 +714,23 @@ Cypress.Commands.add('closeModalUnsupportedPlatform', () => { }); } }); + +Cypress.Commands.add('exportTask', ({ as, type, format, archiveCustomeName }) => { + cy.interactMenu('Export task dataset'); + cy.intercept('GET', `/api/v1/tasks/**/${type}**`).as(as); + cy.get('.cvat-modal-export-task').find('.cvat-modal-export-select').click(); + cy.contains('.cvat-modal-export-option-item', format).click(); + cy.get('.cvat-modal-export-task').find('.cvat-modal-export-select').should('contain.text', format); + if (type === 'dataset') { + cy.get('.cvat-modal-export-task').find('[type="checkbox"]').should('not.be.checked').check(); + } + if (archiveCustomeName) { + cy.get('.cvat-modal-export-task').find('.cvat-modal-export-filename-input').type(archiveCustomeName); + } + cy.contains('button', 'OK').click(); + cy.get('.cvat-notification-notice-export-task-start').should('be.visible'); + cy.closeNotification('.cvat-notification-notice-export-task-start'); + cy.wait(`@${as}`, { timeout: 5000 }).its('response.statusCode').should('equal', 202); + cy.wait(`@${as}`).its('response.statusCode').should('equal', 201); + cy.wait(2000) // Waiting for a full file download +}); diff --git a/tests/cypress_canvas3d.json b/tests/cypress_canvas3d.json index 06a37637..d965f768 100644 --- a/tests/cypress_canvas3d.json +++ b/tests/cypress_canvas3d.json @@ -4,6 +4,7 @@ "viewportWidth": 1300, "viewportHeight": 960, "defaultCommandTimeout": 25000, + "downloadsFolder": "cypress/fixtures", "env": { "user": "admin", "email": "admin@localhost.company",