Add new test scenario and fix it

This commit is contained in:
Ramon Wenger 2020-07-02 11:12:00 +02:00
parent 240fcf0795
commit 10cc8ca3ba
4 changed files with 49 additions and 20 deletions

View File

@ -86,13 +86,13 @@
},
"bookmark": null,
"__typename": "ModuleNode"
}
},
"__typename": "ModuleNodeEdge"
}
],
"__typename": "ModuleNodeEdge"
"__typename": "ModuleNodeConnection"
},
"__typename": "ModuleNodeConnection"
},
"__typename": "TopicNode"
"__typename": "TopicNode"
}
}

View File

@ -2,11 +2,28 @@ const schema = require('../fixtures/schema.json');
const assignments = require('../fixtures/assignments.json');
const mePayload = require('../fixtures/me.join-class.json');
const topics = require('../fixtures/topics.json');
const topic = require('../fixtures/geld-und-kauf.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'
}
})
]
}
}
}
Cypress.Commands.add('checkHome', (n, skipHome) => {
if (!skipHome) {
cy.get('[data-cy="home-link"]').click();
@ -18,6 +35,7 @@ Cypress.Commands.add('checkHome', (n, skipHome) => {
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();
});
@ -72,9 +90,6 @@ describe('Current Module', () => {
}
},
UpdateLastModule: variables => {
console.log(variables);
console.log(moduleTeasers);
console.log(moduleTeasers[variables.input.id]);
return {
updateLastModule: {
lastModule: moduleTeasers[variables.input.id],
@ -96,18 +111,18 @@ describe('Current Module', () => {
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('1. Geld und Kauf', 'Modul 2');
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('1. Geld und Kauf', 'Modul 1');
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('1. Geld und Kauf', 'Modul 4');
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');
@ -115,18 +130,25 @@ describe('Current Module', () => {
cy.get('[data-cy=start-module-teaser]').eq(2).should('contain', 'Geld');
// module list is full, should switch only the order around
cy.goToModule('1. Geld und Kauf', 'Modul 2');
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.get('[data-cy=start-module-teaser]').last().click();
cy.get('[data-cy=module-title]').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', 'Lohn und Budget');
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');
})
});

View File

@ -116,15 +116,20 @@
if (data) {
data.me.lastModule = lastModule;
let recentModules = data.me.recentModules.edges;
let newRecentModules;
let index = recentModules.findIndex(element => element.node.id === lastModule.id);
if (index > -1) {
recentModules = [...recentModules.slice(0, index), ...recentModules.slice(index + 1)]
newRecentModules = [...recentModules.slice(0, index), ...recentModules.slice(index + 1)]
} else if (recentModules.length >= 3) {
newRecentModules = recentModules.slice(0, recentModules.length - 1);
} else {
newRecentModules = recentModules;
}
recentModules.unshift({
newRecentModules.unshift({
__typename: 'ModuleNodeEdge',
node: lastModule
});
data.me.recentModules.edges = recentModules;
data.me.recentModules.edges = newRecentModules;
store.writeQuery({query: ME_QUERY, data});
}
}

View File

@ -5,7 +5,9 @@
</div>
<div class="topic__content">
<h1 class="topic__title">{{ topic.title }}</h1>
<h1
data-cy="topic-title"
class="topic__title">{{ topic.title }}</h1>
<p class="topic__teaser">
{{ topic.teaser }}
</p>