Add frontend tests for snapshot menu
This commit is contained in:
parent
38313ecb26
commit
7b42f3c187
|
|
@ -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', () => {
|
describe('Snapshot', () => {
|
||||||
it('Menu is visible for teacher', () => {
|
beforeEach(() => {
|
||||||
cy.get('NotImplemented');
|
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', () => {
|
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');
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,7 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="snapshot-menu">
|
<div
|
||||||
|
class="snapshot-menu"
|
||||||
|
data-cy="snapshot-menu">
|
||||||
<a
|
<a
|
||||||
data-cy="module-snapshots-button"
|
data-cy="module-snapshots-button"
|
||||||
class="snapshot-menu__toggle"
|
class="snapshot-menu__toggle"
|
||||||
|
|
|
||||||
|
|
@ -32,7 +32,7 @@ export default {
|
||||||
return this.me.selectedClass;
|
return this.me.selectedClass;
|
||||||
},
|
},
|
||||||
canManageContent() {
|
canManageContent() {
|
||||||
return this.me.permissions.includes('users.can_manage_school_class_content');
|
return this.me.isTeacher;
|
||||||
},
|
},
|
||||||
currentClassName() {
|
currentClassName() {
|
||||||
let currentClass = this.me.schoolClasses.find(schoolClass => {
|
let currentClass = this.me.schoolClasses.find(schoolClass => {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue