skillbox/client/cypress/integration/frontend/read-only/portfolio.spec.js

54 lines
1.6 KiB
JavaScript

import {getMinimalMe} from '../../../support/helpers';
const getOperations = ({readOnly = false, classReadOnly = false}) => ({
MeQuery: getMinimalMe({readOnly, classReadOnly}),
ProjectsQuery: {
projects: [
{
id: 'projectId',
final: false,
student: {
id: btoa('PrivateUserNode:1'),
},
entriesCount: 3,
},
],
},
});
describe('Read Only Portfolio', () => {
beforeEach(() => {
cy.setup();
});
it('Can create and edit project', () => {
cy.mockGraphqlOps({operations: getOperations({readOnly: false})});
cy.visit('/portfolio');
cy.getByDataCy('project-list').should('exist');
cy.getByDataCy('add-project-button').should('exist');
cy.getByDataCy('project').should('have.length', 1);
cy.getByDataCy('project-actions').should('exist');
});
it('Can not create and edit project when license invalid', () => {
cy.mockGraphqlOps({operations: getOperations({readOnly: true})});
cy.visit('/portfolio');
cy.getByDataCy('project-list').should('exist');
cy.getByDataCy('add-project-button').should('not.exist');
cy.getByDataCy('project').should('have.length', 1);
cy.getByDataCy('project-actions').should('not.exist');
});
it('Can not create and edit project when class inactive', () => {
cy.mockGraphqlOps({operations: getOperations({readOnly: false, classReadOnly: true})});
cy.visit('/portfolio');
cy.getByDataCy('project-list').should('exist');
cy.getByDataCy('add-project-button').should('not.exist');
cy.getByDataCy('project').should('have.length', 1);
cy.getByDataCy('project-actions').should('not.exist');
});
});