import mocks from '../../../fixtures/mocks'; const selectedClassName = 'My Class'; const getOperations = ({readOnly}) => ({ MeQuery: { me: { onboardingVisited: true, readOnly, isTeacher: true, }, }, MySchoolClassQuery: { me: { readOnly, isTeacher: true, selectedClass: { name: selectedClassName, code: 'XXXX', members: [ { id: 'id', firstName: 'Me', lastName: 'Myson', isTeacher: true, active: true, isMe: true, }, ], }, }, }, }); const checkSchoolClassTeamReadOnly = (readOnly) => { cy.mockGraphqlOps({ operations: getOperations({readOnly}), }); const exist = readOnly ? 'not.exist' : 'exist'; cy.visit('me/class'); cy.getByDataCy('group-list-name').should('exist').should('contain', selectedClassName); cy.getByDataCy('show-code-button').should(exist); cy.getByDataCy('edit-group-name-link').should(exist); cy.openSidebar(); cy.getByDataCy('class-selection').click(); cy.getByDataCy('current-class-name').should('exist'); cy.getByDataCy('create-class-link').should(exist); cy.getByDataCy('my-team-link').should(exist); }; describe('School Class and Team Management - Read only', () => { beforeEach(() => { cy.fakeLogin('rachel.green', 'test'); cy.server(); cy.task('getSchema').then(schema => { cy.mockGraphql({ schema, mocks, }); }); }); it('can see menu items', () => { checkSchoolClassTeamReadOnly(false); }); it('can not see menu items', () => { checkSchoolClassTeamReadOnly(true); }); });