skillbox/client/cypress/integration/frontend/current-module.spec.js

167 lines
5.2 KiB
JavaScript

const assignments = require('../../fixtures/assignments.json');
const mePayload = require('../../fixtures/me.join-class.json');
const topics = require('../../fixtures/topics.json');
const baseTopic = require('../../fixtures/geld-und-kauf.json');
const moduleTeasers = require('../../fixtures/module-teasers.json');
const fullModules = require('../../fixtures/full-modules.json');
const topic = {
topic: {
...baseTopic.topic,
modules: {
'__typename': 'ModuleNodeConnection',
edges: [
...Object.values(moduleTeasers).map(module => {
return {
node: module,
__typename: 'ModuleNodeEdge',
};
}),
],
},
},
};
const me = {
...mePayload.me,
lastModule: {
// 'id': 'TW9kdWxlTm9kZToxNw==',
'slug': 'lohn-und-budget',
'__typename': 'ModuleNode',
},
lastTopic: {
'id': 'VG9waWNOb2RlOjU=',
'slug': 'geld-und-kauf',
'__typename': 'TopicNode',
},
recentModules: {
'edges': [],
'__typename': 'ModuleNodeConnection',
},
};
const operations = {
MeQuery: variables => {
return {
me: {
...me,
'__typename': 'UserNode',
'permissions': [],
},
};
},
AssignmentsQuery: {
assignments,
},
ModulesQuery: variables => {
return {
module: fullModules[variables.slug],
};
},
TopicsQuery: topics,
Topic: topic,
UpdateLastTopic: {
'updateLastTopic': {
'topic': topic.topic,
'__typename': 'UpdateLastTopicPayload',
},
},
UpdateLastModule: variables => {
return {
updateLastModule: {
lastModule: moduleTeasers[variables.input.id],
__typename: 'UpdateLastModulePayload',
},
};
},
};
Cypress.Commands.add('checkHome', (n, skipHome) => {
if (!skipHome) {
cy.get('[data-cy="home-link"]').click();
}
cy.get('[data-cy=start-modules-list]').should('exist');
cy.get('[data-cy=start-module-teaser]').should('have.length', n);
});
Cypress.Commands.add('goToModule', (topicTitle, moduleMetaTitle) => {
cy.get('[data-cy=open-sidebar-link]').click();
cy.contains(topicTitle).click();
cy.get('[data-cy=topic-title]').should('exist').should('contain', topicTitle);
cy.contains(moduleMetaTitle).click();
});
describe('Current Module', () => {
before(() => {
cy.server();
cy.task('getSchema').then(schema => {
cy.mockGraphql({
schema,
// endpoint: '/api/graphql'
// mocks,
operations,
});
});
// cy.mockGraphql({
// schema: schema,
// // endpoint: '/api/graphql'
// operations,
// });
});
// it('is set correctly', () => {
// cy.viewport('macbook-15');
//
// cy.fakeLogin('nico.zickgraf', 'test');
// // cy.apolloLogin('nico.zickgraf', 'test');
// cy.visit('/');
//
// // module list exists, but does not have anything in it
// cy.checkHome(0, true);
// cy.get('[data-cy=no-modules-yet]').should('exist').should('contain', 'Sie haben sich noch kein Modul angeschaut. Legen Sie jetzt los!');
//
// cy.goToModule('Geld und Kauf', 'Modul 2');
// cy.get('[data-cy=module-title]').should('contain', 'Geld');
// cy.checkHome(1);
// cy.get('[data-cy=start-module-teaser]').first().should('contain', 'Geld');
//
// cy.goToModule('Geld und Kauf', 'Modul 1');
// cy.get('[data-cy=module-title]').should('contain', 'Lohn und Budget');
// cy.checkHome(2);
// cy.get('[data-cy=start-module-teaser]').first().should('contain', 'Lohn und Budget');
// cy.get('[data-cy=start-module-teaser]').eq(1).should('contain', 'Geld');
//
// cy.goToModule('Geld und Kauf', 'Modul 4');
// cy.get('[data-cy=module-title]').should('contain', 'Lerntipps');
// cy.checkHome(3);
// cy.get('[data-cy=start-module-teaser]').first().should('contain', 'Lerntipps');
// cy.get('[data-cy=start-module-teaser]').eq(1).should('contain', 'Lohn und Budget');
// cy.get('[data-cy=start-module-teaser]').eq(2).should('contain', 'Geld');
//
// // module list is full, should switch only the order around
// cy.goToModule('Geld und Kauf', 'Modul 2');
// cy.get('[data-cy=module-title]').should('contain', 'Geld');
// cy.checkHome(3);
// cy.get('[data-cy=start-module-teaser]').first().should('contain', 'Geld');
// cy.get('[data-cy=start-module-teaser]').eq(1).should('contain', 'Lerntipps');
// cy.get('[data-cy=start-module-teaser]').eq(2).should('contain', 'Lohn und Budget');
//
// cy.goToModule('Geld und Kauf', 'Modul 5');
// cy.get('[data-cy=module-title]').should('contain', 'Random');
// cy.checkHome(3);
// cy.get('[data-cy=start-module-teaser]').first().should('contain', 'Random');
// cy.get('[data-cy=start-module-teaser]').eq(1).should('contain', 'Geld');
// cy.get('[data-cy=start-module-teaser]').eq(2).should('contain', 'Lerntipps');
//
// cy.get('[data-cy=start-module-teaser]').last().click();
// cy.get('[data-cy=module-title]').should('contain', 'Lerntipps');
// cy.checkHome(3);
// cy.get('[data-cy=start-module-teaser]').first().should('contain', 'Lerntipps');
// cy.get('[data-cy=start-module-teaser]').eq(1).should('contain', 'Random');
// cy.get('[data-cy=start-module-teaser]').eq(2).should('contain', 'Geld');
// });
});