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

54 lines
1.7 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('create-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');
});
});