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
main
Dmitry Kruchinin 5 years ago committed by GitHub
parent 589dc91d2d
commit 3c3465dd8e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -34,8 +34,9 @@ context('Dump/Upload annotation.', { browser: '!firefox' }, () => {
const imagesFolder = `cypress/fixtures/${imageFileName}`; const imagesFolder = `cypress/fixtures/${imageFileName}`;
const directoryToArchive = imagesFolder; const directoryToArchive = imagesFolder;
const dumpType = 'CVAT for images'; const exportFormat = 'CVAT for images';
let annotationArchiveName = ''; let annotationArchiveName = '';
let annotationArchiveNameCustomeName = '';
function uploadToTask(toTaskName) { function uploadToTask(toTaskName) {
cy.contains('.cvat-item-task-name', toTaskName) cy.contains('.cvat-item-task-name', toTaskName)
@ -43,13 +44,13 @@ context('Dump/Upload annotation.', { browser: '!firefox' }, () => {
.find('.cvat-menu-icon') .find('.cvat-menu-icon')
.trigger('mouseover'); .trigger('mouseover');
cy.contains('Upload annotations').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') .should('be.visible')
.within(() => { .within(() => {
cy.get('.cvat-menu-load-submenu-item-button') cy.get('.cvat-menu-load-submenu-item-button')
.click() .click()
.get('input[type=file]') .get('input[type=file]')
.attachFile(annotationArchiveName); .attachFile(annotationArchiveNameCustomeName);
}); });
} }
@ -65,24 +66,39 @@ context('Dump/Upload annotation.', { browser: '!firefox' }, () => {
}); });
describe(`Testing case "${caseId}"`, () => { 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.saveJob('PATCH', 200, 'saveJobDump');
cy.intercept('GET', '/api/v1/tasks/**/annotations**').as('dumpAnnotations'); const exportAnnotationRenameArchive = {
cy.interactMenu('Export task dataset'); as: 'exportAnnotationsRenameArchive',
cy.get('.cvat-modal-export-task').within(() => { type: 'annotations',
cy.get('.cvat-modal-export-select').should('contain.text', dumpType); format: exportFormat,
cy.contains('button', 'OK').click(); 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.removeAnnotations();
cy.saveJob('PUT'); cy.saveJob('PUT');
cy.get('#cvat_canvas_shape_1').should('not.exist'); cy.get('#cvat_canvas_shape_1').should('not.exist');
cy.get('#cvat-objects-sidebar-state-item-1').should('not.exist'); cy.get('#cvat-objects-sidebar-state-item-1').should('not.exist');
const regex = new RegExp(`^task_${taskName.toLowerCase()}-.*-${exportAnnotation.format.toLowerCase()}.*.zip$`);
cy.wait(2000); // Waiting for the full download.
cy.task('listFiles', 'cypress/fixtures').each((fileName) => { 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; annotationArchiveName = fileName;
} }
}); });
@ -90,7 +106,7 @@ context('Dump/Upload annotation.', { browser: '!firefox' }, () => {
it('Upload annotation to job.', () => { it('Upload annotation to job.', () => {
cy.interactMenu('Upload annotations'); 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') .should('be.visible')
.within(() => { .within(() => {
cy.get('.cvat-menu-load-submenu-item-button') 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_canvas_shape_1').should('exist');
cy.get('#cvat-objects-sidebar-state-item-1').should('exist'); cy.get('#cvat-objects-sidebar-state-item-1').should('exist');
cy.removeAnnotations(); 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.', () => { it('Upload annotation to task.', () => {

@ -26,18 +26,35 @@ context('Export task dataset.', () => {
}); });
describe(`Testing case "${caseId}"`, () => { describe(`Testing case "${caseId}"`, () => {
it(`Go to Menu. Press "Export task dataset" with the "${exportFormat}" format.`, () => { it('Export a task as dataset.', () => {
cy.intercept('GET', '/api/v1/tasks/**/dataset**').as('exportDataset'); const exportDataset = {
cy.interactMenu('Export task dataset'); as: 'exportDataset',
cy.get('.cvat-modal-export-task').within(() => { type: 'dataset',
cy.get('.cvat-modal-export-select').should('contain.text', exportFormat); format: exportFormat,
cy.get('[type="checkbox"]').should('not.be.checked').check(); };
cy.contains('button', 'OK').click(); 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);
}); });
}); });
}); });

@ -13,6 +13,7 @@ context('Canvas 3D functionality. Dump/upload annotation. "Point Cloud" format',
}; };
const dumpTypePC = 'Sly Point Cloud Format'; const dumpTypePC = 'Sly Point Cloud Format';
let annotationPCArchiveName = ''; let annotationPCArchiveName = '';
let annotationPCArchiveCustomeName = '';
function confirmUpdate(modalWindowClassName) { function confirmUpdate(modalWindowClassName) {
cy.get(modalWindowClassName).within(() => { 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(() => { before(() => {
cy.openTask(taskName); cy.openTask(taskName);
cy.openJob(); cy.openJob();
cy.wait(1000); // Waiting for the point cloud to display cy.wait(1000); // Waiting for the point cloud to display
cy.create3DCuboid(cuboidCreationParams); cy.create3DCuboid(cuboidCreationParams);
cy.saveJob('PATCH', 200, 'saveJob');
}); });
describe(`Testing case "${caseId}"`, () => { describe(`Testing case "${caseId}"`, () => {
it('Save a job. Dump with "Point Cloud" format.', () => { it('Export with "Point Cloud" format.', () => {
cy.saveJob('PATCH', 200, 'saveJob'); const exportAnnotation = {
cy.intercept('GET', '/api/v1/tasks/**/annotations**').as('dumpAnnotations'); as: 'exportAnnotations',
cy.interactMenu('Export task dataset'); type: 'annotations',
cy.get('.cvat-modal-export-task').find('.cvat-modal-export-select').click(); format: dumpTypePC,
cy.get('.ant-select-dropdown') };
.not('.ant-select-dropdown-hidden') cy.exportTask(exportAnnotation);
.contains('.cvat-modal-export-option-item', dumpTypePC) const regex = new RegExp(`^task_${taskName.toLowerCase()}-.*-${exportAnnotation.format.toLowerCase()}.*.zip$`);
.click(); cy.task('listFiles', 'cypress/fixtures').each((fileName) => {
cy.get('.cvat-modal-export-select').should('contain.text', dumpTypePC); if (fileName.match(regex)) {
cy.get('.cvat-modal-export-task').contains('button', 'OK').click(); cy.readFile(`cypress/fixtures/${fileName}`).should('exist');
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())) {
annotationPCArchiveName = fileName; 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.', () => { it('Upload "Point Cloud" format annotation to job.', () => {
cy.interactMenu('Upload annotations'); cy.interactMenu('Upload annotations');
cy.readFile('cypress/fixtures/' + annotationPCArchiveName, 'binary')
cy.readFile('cypress/downloads/' + annotationPCArchiveName, 'binary')
.then(Cypress.Blob.binaryStringToBlob) .then(Cypress.Blob.binaryStringToBlob)
.then((fileContent) => { .then((fileContent) => {
cy.contains('.cvat-menu-load-submenu-item', dumpTypePC.split(' ')[0]) 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.get('#cvat-objects-sidebar-state-item-1').should('exist');
cy.removeAnnotations(); cy.removeAnnotations();
cy.get('button').contains('Save').click({ force: true }); 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(); 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'); confirmUpdate('.cvat-modal-content-load-task-annotation');
cy.contains('Annotations have been loaded').should('be.visible'); cy.contains('Annotations have been loaded').should('be.visible');
cy.get('[data-icon="close"]').click(); cy.get('[data-icon="close"]').click();

@ -13,6 +13,7 @@ context('Canvas 3D functionality. Dump/upload annotation. "Velodyne Points" form
}; };
const dumpTypeVC = 'Kitti Raw Format'; const dumpTypeVC = 'Kitti Raw Format';
let annotationVCArchiveName = ''; let annotationVCArchiveName = '';
let annotationVCArchiveNameCustomeName = '';
function confirmUpdate(modalWindowClassName) { function confirmUpdate(modalWindowClassName) {
cy.get(modalWindowClassName).within(() => { 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(() => { before(() => {
cy.openTask(taskName); cy.openTask(taskName);
cy.openJob(); cy.openJob();
cy.wait(1000); // Waiting for the point cloud to display cy.wait(1000); // Waiting for the point cloud to display
cy.create3DCuboid(cuboidCreationParams); cy.create3DCuboid(cuboidCreationParams);
cy.saveJob('PATCH', 200, 'saveJob');
}); });
describe(`Testing case "${caseId}"`, () => { describe(`Testing case "${caseId}"`, () => {
it('Save a job. Dump with "Velodyne Points" format.', () => { it('Export with "Velodyne Points" format.', () => {
cy.saveJob('PATCH', 200, 'saveJob'); const exportAnnotation = {
cy.intercept('GET', '/api/v1/tasks/**/annotations**').as('dumpAnnotations'); as: 'exportAnnotations',
cy.interactMenu('Export task dataset'); type: 'annotations',
cy.get('.cvat-modal-export-task').find('.cvat-modal-export-select').click(); format: dumpTypeVC,
cy.get('.ant-select-dropdown') };
.not('.ant-select-dropdown-hidden') cy.exportTask(exportAnnotation);
.contains('.cvat-modal-export-option-item', dumpTypeVC) const regex = new RegExp(`^task_${taskName.toLowerCase()}-.*-${exportAnnotation.format.toLowerCase()}.*.zip$`);
.click(); cy.task('listFiles', 'cypress/fixtures').each((fileName) => {
cy.get('.cvat-modal-export-select').should('contain.text', dumpTypeVC); if (fileName.match(regex)) {
cy.get('.cvat-modal-export-task').contains('button', 'OK').click(); cy.readFile(`cypress/fixtures/${fileName}`).should('exist');
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())) {
annotationVCArchiveName = fileName; 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.', () => { it('Upload "Velodyne Points" format annotation to job.', () => {
cy.interactMenu('Upload annotations'); cy.interactMenu('Upload annotations');
cy.readFile('cypress/downloads/' + annotationVCArchiveName, 'binary') cy.readFile('cypress/fixtures/' + annotationVCArchiveName, 'binary')
.then(Cypress.Blob.binaryStringToBlob) .then(Cypress.Blob.binaryStringToBlob)
.then((fileContent) => { .then((fileContent) => {
cy.contains('.cvat-menu-load-submenu-item', dumpTypeVC.split(' ')[0]) 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.', () => { it('Upload annotation to task.', () => {
cy.goToTaskList(); 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'); confirmUpdate('.cvat-modal-content-load-task-annotation');
cy.contains('Annotations have been loaded').should('be.visible'); cy.contains('Annotations have been loaded').should('be.visible');
cy.get('[data-icon="close"]').click(); cy.get('[data-icon="close"]').click();

@ -15,21 +15,6 @@ context('Canvas 3D functionality. Export as a dataset.', () => {
const dumpTypePC = 'Sly Point Cloud Format'; const dumpTypePC = 'Sly Point Cloud Format';
const dumpTypeVC = 'Kitti Raw 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(() => { before(() => {
cy.openTask(taskName); cy.openTask(taskName);
cy.openJob(); cy.openJob();
@ -40,11 +25,49 @@ context('Canvas 3D functionality. Export as a dataset.', () => {
describe(`Testing case "${caseId}"`, () => { describe(`Testing case "${caseId}"`, () => {
it('Export as a dataset with "Point Cloud" format.', () => { 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.', () => { 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.removeAnnotations();
cy.saveJob('PUT'); cy.saveJob('PUT');
}); });

@ -17,7 +17,7 @@ context('Dump annotation if cuboid created.', () => {
secondX: 350, secondX: 350,
secondY: 450, secondY: 450,
}; };
const dumpType = 'Datumaro'; const exportFormat = 'Datumaro';
before(() => { before(() => {
cy.openTaskJob(taskName); cy.openTaskJob(taskName);
@ -26,21 +26,16 @@ context('Dump annotation if cuboid created.', () => {
describe(`Testing issue "${issueId}"`, () => { describe(`Testing issue "${issueId}"`, () => {
it('Create a cuboid.', () => { it('Create a cuboid.', () => {
cy.createCuboid(createCuboidShape2Points); cy.createCuboid(createCuboidShape2Points);
cy.saveJob('PATCH', 200, `dump${exportFormat}Format`);
}); });
it('Dump an annotation.', () => { it('Dump an annotation.', () => {
cy.saveJob('PATCH', 200, `dump${dumpType}Format`); const exportAnnotation = {
cy.intercept('GET', '/api/v1/tasks/**/annotations**').as('dumpAnnotations'); as: 'exportAnnotations',
cy.interactMenu('Export task dataset'); type: 'annotations',
cy.get('.cvat-modal-export-task').find('.cvat-modal-export-select').click(); format: exportFormat,
cy.get('.ant-select-dropdown') };
.not('.ant-select-dropdown-hidden') cy.exportTask(exportAnnotation);
.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);
}); });
it('Error notification is not exists.', () => { it('Error notification is not exists.', () => {

@ -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
});

@ -4,6 +4,7 @@
"viewportWidth": 1300, "viewportWidth": 1300,
"viewportHeight": 960, "viewportHeight": 960,
"defaultCommandTimeout": 25000, "defaultCommandTimeout": 25000,
"downloadsFolder": "cypress/fixtures",
"env": { "env": {
"user": "admin", "user": "admin",
"email": "admin@localhost.company", "email": "admin@localhost.company",

Loading…
Cancel
Save