const myText = 'Mein Feedback'; const getOperations = ({readOnly, classReadOnly = false}) => ({ MeQuery: { me: { readOnly, selectedClass: { id: 'selectedClassId', readOnly: classReadOnly } }, }, StudentSubmissions: { studentSubmission: { id: 'id', text: 'Submission Text', document: '', student: { firstName: 'Peter', lastName: 'Student', }, assignment: { title: 'Assignment Title', assignment: 'Assignment Text', }, submissionFeedback: { id: 'feedback-id', text: myText, final: true, }, }, }, }); describe('Assignment feedback read-only - Teacher', () => { beforeEach(() => { cy.setup(); }); it('can not edit', () => { cy.mockGraphqlOps({ operations: getOperations({readOnly: true}), }); cy.visit('submission/submission-id'); cy.isSubmissionReadOnly(myText); cy.getByDataCy('final-submission-reopen').should('not.exist'); }); it('can edit', () => { cy.mockGraphqlOps({ operations: getOperations({readOnly: false}), }); cy.visit('submission/submission-id'); cy.getByDataCy('final-submission-reopen').should('exist'); }); it('can not edit for inactive class', () => { cy.mockGraphqlOps({ operations: getOperations({readOnly: false, classReadOnly: true}), }); cy.visit('submission/submission-id'); cy.isSubmissionReadOnly(myText); cy.getByDataCy('final-submission-reopen').should('not.exist'); }); });