Update cypress test. Create task fail. Update task fail. Delete task fail. (#2622)

* add test

* add className for elements and chage cvat-ui version

* change ant to cvat cssSelector

* fix test if it is running at firefox

* improvements by comments

* fix fail

Co-authored-by: Dmitriy Oparin <dmitriyx.oparin@intel.com>
main
DmitriyOparin 5 years ago committed by GitHub
parent a5ded53228
commit a7a23d4bfa
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -83,6 +83,7 @@ export default function ActionsMenuComponent(props: Props): JSX.Element {
Modal.confirm({
title: `The task ${taskID} will be deleted`,
content: 'All related data (images, annotations) will be lost. Continue?',
className: 'cvat-modal-confirm-delete-task',
onOk: () => {
onClickMenu(copyParams);
},

@ -135,11 +135,11 @@ export default class LabelForm extends React.Component<Props> {
<Tooltip title='An HTML element representing the attribute' mouseLeaveDelay={0}>
<Form.Item name={[key, 'type']} fieldKey={[fieldInstance.fieldKey, 'type']} initialValue={type}>
<Select className='cvat-attribute-type-input' disabled={locked}>
<Select.Option value={AttributeType.SELECT}>Select</Select.Option>
<Select.Option value={AttributeType.RADIO}>Radio</Select.Option>
<Select.Option value={AttributeType.CHECKBOX}>Checkbox</Select.Option>
<Select.Option value={AttributeType.TEXT}>Text</Select.Option>
<Select.Option value={AttributeType.NUMBER}>Number</Select.Option>
<Select.Option value={AttributeType.SELECT} className='cvat-attribute-type-input-select'>Select</Select.Option>
<Select.Option value={AttributeType.RADIO} className='cvat-attribute-type-input-radio'>Radio</Select.Option>
<Select.Option value={AttributeType.CHECKBOX} className='cvat-attribute-type-input-checkbox'>Checkbox</Select.Option>
<Select.Option value={AttributeType.TEXT} className='cvat-attribute-type-input-text'>Text</Select.Option>
<Select.Option value={AttributeType.NUMBER} className='cvat-attribute-type-input-number'>Number</Select.Option>
</Select>
</Form.Item>
</Tooltip>

@ -376,6 +376,7 @@ export default function (state = defaultState, action: AnyAction): Notifications
updating: {
message: `Could not update <a href="/tasks/${taskID}" target="_blank">task ${taskID}</a>`,
reason: action.payload.error.toString(),
className: 'cvat-notification-notice-update-task-failed',
},
},
},
@ -412,6 +413,7 @@ export default function (state = defaultState, action: AnyAction): Notifications
'Could not delete the ' +
`<a href="/tasks/${taskID}" target="_blank">task ${taskID}</a>`,
reason: action.payload.error.toString(),
className: 'cvat-notification-notice-delete-task-failed',
},
},
},
@ -427,6 +429,7 @@ export default function (state = defaultState, action: AnyAction): Notifications
creating: {
message: 'Could not create the task',
reason: action.payload.error.toString(),
className: 'cvat-notification-notice-create-task-failed',
},
},
},

@ -37,6 +37,11 @@ context('Multiple users. Assign task, job.', () => {
password: 'Fv5Df3#f55g',
};
before(() => {
cy.imageGenerator(imagesFolder, imageFileName, width, height, color, posX, posY, labelName, imagesCount);
cy.createZipArchive(directoryToArchive, archivePath);
});
after(() => {
cy.login();
cy.getTaskID(taskName).then(($taskID) => {
@ -46,7 +51,7 @@ context('Multiple users. Assign task, job.', () => {
describe(`Testing case "${caseId}"`, () => {
// First user is "admin".
it('Register second user and logout.', () => {
it('Register second user, tries to create task and logout.', () => {
cy.visit('auth/register');
cy.url().should('include', '/auth/register');
cy.userRegistration(
@ -56,6 +61,21 @@ context('Multiple users. Assign task, job.', () => {
secondUser.emailAddr,
secondUser.password,
);
cy.createAnnotationTask(
taskName,
labelName,
attrName,
textDefaultValue,
archiveName,
null,
null,
false,
false,
null,
'fail',
);
cy.closeNotification('.cvat-notification-notice-create-task-failed');
cy.contains('.cvat-item-task-name', `${taskName}`).should('not.exist');
cy.logout(secondUserName);
});
it('Register third user and logout.', () => {
@ -70,13 +90,21 @@ context('Multiple users. Assign task, job.', () => {
);
cy.logout(thirdUserName);
});
it('First user login and create a task', () => {
it('First user login, create a task and logout', () => {
cy.login();
cy.imageGenerator(imagesFolder, imageFileName, width, height, color, posX, posY, labelName, imagesCount);
cy.createZipArchive(directoryToArchive, archivePath);
cy.createAnnotationTask(taskName, labelName, attrName, textDefaultValue, archiveName);
cy.logout();
});
it('Second user login, tries to add label and logout', () => {
cy.login(secondUserName, secondUser.password);
cy.openTask(taskName);
cy.addNewLabel('failAddLabel');
cy.closeNotification('.cvat-notification-notice-update-task-failed');
cy.contains('.cvat-constructor-viewer-item', 'failAddLabel').should('not.exist');
cy.logout(secondUserName);
});
it('Assign the task to the second user and logout', () => {
cy.login();
cy.openTask(taskName);
cy.assignTaskToUser(secondUserName);
cy.logout();
@ -98,9 +126,16 @@ context('Multiple users. Assign task, job.', () => {
cy.assignJobToUser(0, thirdUserName);
cy.logout();
});
it('Third user login. The task can be opened.', () => {
it('Third user login. Tries to delete task. The task can be opened.', () => {
cy.login(thirdUserName, thirdUser.password);
cy.contains('strong', taskName).should('exist');
cy.getTaskID(taskName).then(($taskID) => {
cy.deleteTask(taskName, $taskID);
});
cy.closeNotification('.cvat-notification-notice-delete-task-failed');
cy.contains('.cvat-item-task-name', taskName)
.parents('.cvat-tasks-list-item')
.should('not.have.attr', 'style');
cy.openTask(taskName);
cy.logout(thirdUserName);
});

@ -54,6 +54,7 @@ Cypress.Commands.add(
forProject = false,
attachToProject = false,
projectName,
expectedResult = 'success',
) => {
cy.get('#cvat-create-task-button').click({ force: true });
cy.url().should('include', '/tasks/create');
@ -64,7 +65,7 @@ Cypress.Commands.add(
cy.get('.cvat-new-attribute-button').click();
cy.get('[placeholder="Name"]').type(attrName);
cy.get('.cvat-attribute-type-input').click();
cy.get('.ant-select-item-option').contains('Text').click();
cy.get('.cvat-attribute-type-input-text').click();
cy.get('[placeholder="Default value"]').type(textDefaultValue);
if (multiAttrParams) {
cy.updateAttributes(multiAttrParams);
@ -89,7 +90,9 @@ Cypress.Commands.add(
cy.advancedConfiguration(advancedConfigurationParams);
}
cy.contains('button', 'Submit').click();
cy.contains('The task has been created');
if (expectedResult === 'success') {
cy.contains('The task has been created');
}
if (!forProject) {
cy.goToTaskList();
} else {
@ -394,7 +397,7 @@ Cypress.Commands.add('getTaskID', (taskName) => {
Cypress.Commands.add('deleteTask', (taskName, taskID) => {
cy.contains('strong', taskName).parents('.cvat-tasks-list-item').find('.cvat-menu-icon').trigger('mouseover');
cy.get('.cvat-actions-menu').contains('Delete').click();
cy.get('.ant-modal-content')
cy.get('.cvat-modal-confirm-delete-task')
.should('contain', `The task ${taskID} will be deleted`)
.within(() => {
cy.contains('button', 'Delete').click();

Loading…
Cancel
Save