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

44 lines
1.2 KiB
JavaScript

import minimalModule from '../../../fixtures/module.minimal';
import { getMinimalMe } from '../../../support/helpers';
const getOperations = ({ readOnly, classReadOnly = false }) => ({
MeQuery: getMinimalMe({ readOnly, classReadOnly }),
ModuleDetailsQuery: {
module: {
...minimalModule,
},
},
UpdateLastModule: {},
});
const moduleNavigationTest = ({ readOnly, classReadOnly = false, displayMenu }) => {
cy.mockGraphqlOps({
operations: getOperations({ readOnly, classReadOnly }),
});
const shouldMenuExist = displayMenu ? 'exist' : 'not.exist';
cy.visit('module/module-slug');
cy.getByDataCy('module-navigation').should('exist');
cy.getByDataCy('module-teacher-menu').should(shouldMenuExist);
};
describe('Module Navigation - read only', () => {
beforeEach(() => {
cy.setup();
});
it('is shown', () => {
moduleNavigationTest({ readOnly: false, displayMenu: true });
});
it('is not shown when no valid license', () => {
moduleNavigationTest({ readOnly: true, displayMenu: false });
});
it('is not shown when inactive school class', () => {
moduleNavigationTest({ readOnly: false, classReadOnly: true, displayMenu: false });
});
});