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: { creating: {
message: 'Could not create the project', message: 'Could not create the project',
reason: action.payload.error.toString(), 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 ' + 'Could not update ' +
`<a href="/project/${projectId}" target="_blank">project ${projectId}</a>`, `<a href="/project/${projectId}" target="_blank">project ${projectId}</a>`,
reason: action.payload.error.toString(), 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 ' + 'Could not delete ' +
`<a href="/project/${projectId}" target="_blank">project ${projectId}</a>`, `<a href="/project/${projectId}" target="_blank">project ${projectId}</a>`,
reason: action.payload.error.toString(), 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.openTask(taskName.firstTask);
cy.get('.cvat-constructor-viewer').should('not.exist'); 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.logout();
cy.goToRegisterPage(); cy.goToRegisterPage();
cy.userRegistration(firstName, lastName, userName, emailAddr, password); 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); cy.logout(userName);
}); });
it('Login first user. Assing project to second user. Logout.', () => { it('Login first user. Assing project to second user. Logout.', () => {
@ -124,9 +131,12 @@ context('Base actions on the project', () => {
cy.assignProjectToUser(userName); cy.assignProjectToUser(userName);
cy.logout(); 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.login(userName, password);
cy.goToProjectsList(); cy.goToProjectsList();
// tries to delete project
cy.deleteProject(projectName, projectID, 'fail');
cy.closeNotification('.cvat-notification-notice-delete-project-failed');
cy.openProject(projectName); cy.openProject(projectName);
cy.goToTaskList(); cy.goToTaskList();
cy.contains('strong', taskName.secondTask).should('not.exist'); cy.contains('strong', taskName.secondTask).should('not.exist');

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