Add cypress test for surveys

This commit is contained in:
Ramon Wenger 2019-07-01 13:08:42 +02:00
parent fbe39e2784
commit b498dc4efa
4 changed files with 131 additions and 8 deletions

View File

@ -0,0 +1,34 @@
describe('Survey', () => {
beforeEach(() => {
cy.exec("python ../server/manage.py prepare_surveys_for_cypress");
cy.viewport('macbook-15');
cy.startGraphQLCapture();
cy.login('rahel.cueni', 'test');
});
it('should display and fill out the survey', () => {
cy.visit('/survey/U3VydmV5Tm9kZTox');
cy.get('.survey__panel-title').should('contain', 'Fall 1')
cy.get('#sq_100i').type('Wohlwollen');
cy.get('#sq_101i').type('Demut');
cy.get('[value=Next]').click();
//cy.get('.button--primary').click()
cy.get('#sq_102i').type('Keuschheit');
cy.get('#sq_103i').type('Geduld');
cy.get('[value=Complete]').click();
cy.waitFor('UpdateAnswer');
cy.visit('/survey/U3VydmV5Tm9kZTox');
cy.get('#sq_100i').should('have.value', 'Wohlwollen')
});
});

View File

@ -4674,11 +4674,13 @@
},
"balanced-match": {
"version": "1.0.0",
"bundled": true
"bundled": true,
"optional": true
},
"brace-expansion": {
"version": "1.1.11",
"bundled": true,
"optional": true,
"requires": {
"balanced-match": "^1.0.0",
"concat-map": "0.0.1"
@ -4691,15 +4693,18 @@
},
"code-point-at": {
"version": "1.1.0",
"bundled": true
"bundled": true,
"optional": true
},
"concat-map": {
"version": "0.0.1",
"bundled": true
"bundled": true,
"optional": true
},
"console-control-strings": {
"version": "1.1.0",
"bundled": true
"bundled": true,
"optional": true
},
"core-util-is": {
"version": "1.0.2",
@ -4802,7 +4807,8 @@
},
"inherits": {
"version": "2.0.3",
"bundled": true
"bundled": true,
"optional": true
},
"ini": {
"version": "1.3.5",
@ -4812,6 +4818,7 @@
"is-fullwidth-code-point": {
"version": "1.0.0",
"bundled": true,
"optional": true,
"requires": {
"number-is-nan": "^1.0.0"
}
@ -4824,17 +4831,20 @@
"minimatch": {
"version": "3.0.4",
"bundled": true,
"optional": true,
"requires": {
"brace-expansion": "^1.1.7"
}
},
"minimist": {
"version": "0.0.8",
"bundled": true
"bundled": true,
"optional": true
},
"minipass": {
"version": "2.2.4",
"bundled": true,
"optional": true,
"requires": {
"safe-buffer": "^5.1.1",
"yallist": "^3.0.0"
@ -4851,6 +4861,7 @@
"mkdirp": {
"version": "0.5.1",
"bundled": true,
"optional": true,
"requires": {
"minimist": "0.0.8"
}
@ -4923,7 +4934,8 @@
},
"number-is-nan": {
"version": "1.0.1",
"bundled": true
"bundled": true,
"optional": true
},
"object-assign": {
"version": "4.1.1",
@ -4933,6 +4945,7 @@
"once": {
"version": "1.4.0",
"bundled": true,
"optional": true,
"requires": {
"wrappy": "1"
}
@ -5038,6 +5051,7 @@
"string-width": {
"version": "1.0.2",
"bundled": true,
"optional": true,
"requires": {
"code-point-at": "^1.0.0",
"is-fullwidth-code-point": "^1.0.0",

View File

@ -73,7 +73,7 @@
console.log(data);
let json = JSON.parse(data.survey.data);
let answer = {};
if (data.survey.answer.data && data.survey.answer) {
if (data.survey.answer && data.survey.answer.data) {
answer = JSON.parse(data.survey.answer.data);
}

View File

@ -0,0 +1,75 @@
from django.core.management import BaseCommand
from portfolio.factories import ProjectFactory
from portfolio.models import ProjectEntry
from surveys.models import Survey
from users.models import User
survey_data = {
"pages": [
{
"elements": [
{
"description": "Max hat Ende Monat noch Fr. 20.\u2013 \u00fcbrig, die er gespart hat, um mit seinem besten Kumpel, der ein halbes Jahr im Ausland verweilte, Billard spielen zu gehen. Doch dann bittet ihn seine j\u00fcngere Schwester um Geld. Sie hat ein unverhofftes Date mit einem jungen Mann, in den sie sich bereits vor Monaten unsterblich verliebt hat. Leider ist ihr Kontostand aber bereits auf Null.",
"elements": [
{
"name": "A: Max gibt ihr das Geld und muss das Billardspiel absagen.",
"placeHolder": "Passende Tugenden erfassen...",
"type": "text"
},
{
"name": "question2",
"placeHolder": "Passende Tugenden erfassen...",
"title": "B: Max gibt ihr das Geld nicht und geht Billard spielen.",
"type": "text"
}
],
"name": "Fall 1",
"title": "Fall 1",
"type": "panel"
}
],
"name": "Seite 1"
},
{
"elements": [
{
"description": "Auf der Autobahn brennt ein Lastwagen, der jederzeit explodieren kann. Silvio, dem Fahrer, bleiben nur noch wenige Minuten: Entweder bringt er seinen ohnm\u00e4chtig gewordenen Mitfahrer in Sicherheit oder er sperrt die Strasse ab, die nach wie vor dicht befahren wird.",
"elements": [
{
"name": "question1",
"placeHolder": "Passende Tugenden erfassen...",
"title": "A: Silvio bringt seinen Mitfahrer in Sicherheit.",
"type": "text",
"useDisplayValuesInTitle": False
},
{
"name": "question3",
"placeHolder": "Passende Tugenden erfassen...",
"title": "B: Silvio sperrt die Strasse ab.",
"type": "text"
}
],
"name": "panel1",
"title": "Fall 2",
"type": "panel"
}
],
"name": "Seite 2"
}
],
"showQuestionNumbers": "off"
}
class Command(BaseCommand):
def handle(self, *args, **options):
self.stdout.write("Clearing surveys")
Survey.objects.all().delete()
self.stdout.write("Creating survey")
Survey.objects.create(
title='Test',
data=survey_data,
pk=1
)