Update cypress test. Create project fail. Update project fail. Delete project fail. (#2623)

* add test

* add cssSelectors and change cvat-ui version

* fix test if it is running at firefox

* change ant to cvat cssSelector

* improvements by comments

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

@ -460,6 +460,7 @@ export default function (state = defaultState, action: AnyAction): Notifications
creating: {
message: 'Could not create the project',
reason: action.payload.error.toString(),
className: 'cvat-notification-notice-create-project-failed',
},
},
},
@ -478,6 +479,7 @@ export default function (state = defaultState, action: AnyAction): Notifications
'Could not update ' +
`<a href="/project/${projectId}" target="_blank">project ${projectId}</a>`,
reason: action.payload.error.toString(),
className: 'cvat-notification-notice-update-project-failed',
},
},
},
@ -496,6 +498,7 @@ export default function (state = defaultState, action: AnyAction): Notifications
'Could not delete ' +
`<a href="/project/${projectId}" target="_blank">project ${projectId}</a>`,
reason: action.payload.error.toString(),
className: 'cvat-notification-notice-delete-project-failed',
},
},
},

@ -111,10 +111,17 @@ context('Base actions on the project', () => {
cy.openTask(taskName.firstTask);
cy.get('.cvat-constructor-viewer').should('not.exist');
});
it('Logout first user, register second user, logout.', () => {
it('Logout first user, register second user, tries to create project and logout.', () => {
cy.logout();
cy.goToRegisterPage();
cy.userRegistration(firstName, lastName, userName, emailAddr, password);
cy.goToProjectsList();
// tries to create project
const failProjectName = `${randomString()}`;
cy.createProjects(failProjectName, labelName, attrName, textDefaultValue, null, 'fail');
cy.closeNotification('.cvat-notification-notice-create-project-failed');
cy.goToProjectsList();
cy.contains('.cvat-projects-project-item-title', failProjectName).should('not.exist');
cy.logout(userName);
});
it('Login first user. Assing project to second user. Logout.', () => {
@ -124,9 +131,12 @@ context('Base actions on the project', () => {
cy.assignProjectToUser(userName);
cy.logout();
});
it('Login second user. The project and first tasks available for that user. Logout.', () => {
it('Login second user. The project and first tasks available for that user. Tries to delete project. Logout.', () => {
cy.login(userName, password);
cy.goToProjectsList();
// tries to delete project
cy.deleteProject(projectName, projectID, 'fail');
cy.closeNotification('.cvat-notification-notice-delete-project-failed');
cy.openProject(projectName);
cy.goToTaskList();
cy.contains('strong', taskName.secondTask).should('not.exist');

@ -9,26 +9,33 @@ Cypress.Commands.add('goToProjectsList', () => {
cy.url().should('include', '/projects');
});
Cypress.Commands.add('createProjects', (projectName, labelName, attrName, textDefaultValue, multiAttrParams) => {
cy.get('#cvat-create-project-button').click();
cy.get('#name').type(projectName);
cy.get('.cvat-constructor-viewer-new-item').click();
cy.get('[placeholder="Label name"]').type(labelName);
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('[placeholder="Default value"]').type(textDefaultValue);
if (multiAttrParams) {
cy.updateAttributes(multiAttrParams);
}
cy.contains('button', 'Done').click();
cy.get('.cvat-create-project-content').within(() => {
cy.contains('Submit').click();
});
cy.contains('The project has been created').should('exist');
cy.goToProjectsList();
});
Cypress.Commands.add(
'createProjects',
(projectName, labelName, attrName, textDefaultValue, multiAttrParams, expectedResult = 'success') => {
cy.get('#cvat-create-project-button').click();
cy.get('#name').type(projectName);
cy.get('.cvat-constructor-viewer-new-item').click();
cy.get('[placeholder="Label name"]').type(labelName);
cy.get('.cvat-new-attribute-button').click();
cy.get('[placeholder="Name"]').type(attrName);
cy.get('.cvat-attribute-type-input').click();
cy.get('.cvat-attribute-type-input-text').click();
cy.get('[placeholder="Default value"]').type(textDefaultValue);
if (multiAttrParams) {
cy.updateAttributes(multiAttrParams);
}
cy.contains('button', 'Done').click();
cy.get('.cvat-create-project-content').within(() => {
cy.contains('Submit').click();
});
if (expectedResult == 'success') {
cy.contains('The project has been created').should('exist');
} else if (expectedResult == 'fail') {
cy.contains('The project has been created').should('not.exist');
}
cy.goToProjectsList();
},
);
Cypress.Commands.add('openProject', (projectName) => {
cy.contains(projectName).click({ force: true });
@ -47,7 +54,7 @@ Cypress.Commands.add('getProjectID', (projectName) => {
});
});
Cypress.Commands.add('deleteProject', (projectName, projectID) => {
Cypress.Commands.add('deleteProject', (projectName, projectID, expectedResult = 'success') => {
cy.contains(projectName)
.parents('.cvat-projects-project-item-card')
.within(() => {
@ -56,12 +63,16 @@ Cypress.Commands.add('deleteProject', (projectName, projectID) => {
});
});
cy.get('.cvat-project-actions-menu').contains('Delete').click();
cy.get('.ant-modal-content')
cy.get('.cvat-modal-confirm-remove-project')
.should('contain', `The project ${projectID} will be deleted`)
.within(() => {
cy.contains('button', 'Delete').click();
});
cy.get('.cvat-projects-project-item-card').should('have.css', 'opacity', '0.5');
if (expectedResult === 'success') {
cy.get('.cvat-projects-project-item-card').should('have.css', 'opacity', '0.5');
} else if (expectedResult === 'fail') {
cy.get('.cvat-projects-project-item-card').should('not.have.attr', 'style');
}
});
Cypress.Commands.add('assignProjectToUser', (user) => {
@ -75,3 +86,8 @@ Cypress.Commands.add('assignProjectToUser', (user) => {
cy.get(`.ant-select-item-option[title="${user}"]`).click();
});
});
Cypress.Commands.add('closeNotification', (className) => {
cy.get(className).find('span[aria-label="close"]').click();
cy.get(className).should('not.exist');
});

Loading…
Cancel
Save