From 7b42f3c187c2465ff15a3d7b3873f1460e74fb7c Mon Sep 17 00:00:00 2001 From: Ramon Wenger Date: Wed, 12 May 2021 16:50:51 +0200 Subject: [PATCH] Add frontend tests for snapshot menu --- .../integration/frontend/snapshots.spec.js | 62 ++++++++++++++++++- .../src/components/modules/SnapshotMenu.vue | 4 +- client/src/mixins/me.js | 2 +- 3 files changed, 63 insertions(+), 5 deletions(-) diff --git a/client/cypress/integration/frontend/snapshots.spec.js b/client/cypress/integration/frontend/snapshots.spec.js index e9bb461c..75aa370b 100644 --- a/client/cypress/integration/frontend/snapshots.spec.js +++ b/client/cypress/integration/frontend/snapshots.spec.js @@ -1,8 +1,64 @@ +import minimalMe from '../../fixtures/me.minimal'; + +const me = isTeacher => ({ + ...minimalMe, + isTeacher, +}); + +const module = () => ({ + title: 'title', + metaTitle: 'metaTitle', + heroImage: 'heroImage', + teaser: 'teaser', + intro: 'intro', + assignments: {}, + objectiveGroups: [], + id: '', + chapters: [], +}); + +const operations = isTeacher => ({ + operations: { + MeQuery: { + me: me(isTeacher), + }, + ModuleDetailsQuery: { + module: module(), + }, + }, +}); + describe('Snapshot', () => { - it('Menu is visible for teacher', () => { - cy.get('NotImplemented'); + beforeEach(() => { + cy.server(); + + cy.task('getSchema').then(schema => { + cy.mockGraphql({ + schema, + mocks: { + UUID: () => '123-456-789', + GenericStreamFieldType: () => 'GenericStreamFieldType', + }, + }); + }); + + cy.viewport('macbook-15'); }); + + it('Menu is visible for teacher', () => { + cy.fakeLogin('nico.zickgraf', 'test'); + + cy.mockGraphqlOps(operations(true)); + cy.visit('module/miteinander-reden/'); + cy.getByDataCy('snapshot-menu').should('be.visible'); + }); + it('Menu is not visible for student', () => { - cy.get('NotImplemented'); + cy.fakeLogin('rahel.cueni', 'test'); + cy.mockGraphqlOps(operations(false)); + cy.visit('module/miteinander-reden/'); + + cy.getByDataCy('module-title').should('be.visible'); + cy.getByDataCy('snapshot-menu').should('not.exist'); }); }); diff --git a/client/src/components/modules/SnapshotMenu.vue b/client/src/components/modules/SnapshotMenu.vue index a75081fa..d6bde185 100644 --- a/client/src/components/modules/SnapshotMenu.vue +++ b/client/src/components/modules/SnapshotMenu.vue @@ -1,5 +1,7 @@