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'); }); });