Fix frontend tests
This commit is contained in:
parent
484b7a45a6
commit
293bdd84ce
|
|
@ -0,0 +1,10 @@
|
|||
export default {
|
||||
username: '',
|
||||
firstName: '',
|
||||
lastName: '',
|
||||
avatarUrl: '',
|
||||
email: '',
|
||||
onboardingVisited: true,
|
||||
schoolClasses: {},
|
||||
id: '',
|
||||
};
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
export default {
|
||||
UUID: () => '123-456-789',
|
||||
GenericStreamFieldType: () => 'GenericStreamFieldType',
|
||||
};
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
export default {
|
||||
title: 'title',
|
||||
metaTitle: 'metaTitle',
|
||||
heroImage: 'heroImage',
|
||||
teaser: 'teaser',
|
||||
intro: 'intro',
|
||||
assignments: {},
|
||||
objectiveGroups: [],
|
||||
id: '',
|
||||
chapters: [],
|
||||
};
|
||||
|
|
@ -7,8 +7,7 @@
|
|||
"length": 3,
|
||||
"sentenceOffset": 0,
|
||||
"affected": "Hir",
|
||||
"corrected": "Dir",
|
||||
"__typename": "SpellCheckStepNode"
|
||||
"corrected": "Dir"
|
||||
},
|
||||
{
|
||||
"sentence": "Hir ist ein Feler gewesen",
|
||||
|
|
@ -16,8 +15,7 @@
|
|||
"length": 5,
|
||||
"sentenceOffset": 0,
|
||||
"affected": "Feler",
|
||||
"corrected": "Fehler",
|
||||
"__typename": "SpellCheckStepNode"
|
||||
"corrected": "Fehler"
|
||||
},
|
||||
{
|
||||
"sentence": "Hir ist ein Feler gewesen",
|
||||
|
|
@ -25,9 +23,7 @@
|
|||
"length": 7,
|
||||
"sentenceOffset": 0,
|
||||
"affected": "gewesen",
|
||||
"corrected": "gewesen.",
|
||||
"__typename": "SpellCheckStepNode"
|
||||
"corrected": "gewesen."
|
||||
}
|
||||
],
|
||||
"__typename": "SpellCheckPayload"
|
||||
]
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,10 +1,6 @@
|
|||
// import * as schema from '../fixtures/schema.json';
|
||||
import {getModules, getMe} from '../../support/helpers';
|
||||
|
||||
const mocks = {
|
||||
UUID: () => 'Whatever',
|
||||
GenericStreamFieldType: () => '',
|
||||
};
|
||||
import mocks from '../../fixtures/mocks';
|
||||
|
||||
const operations = {
|
||||
MeQuery() {
|
||||
|
|
|
|||
|
|
@ -1,29 +1,19 @@
|
|||
import minimalMe from '../../fixtures/me.minimal';
|
||||
import module from '../../fixtures/module.minimal';
|
||||
import mocks from '../../fixtures/mocks';
|
||||
|
||||
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(),
|
||||
module,
|
||||
},
|
||||
},
|
||||
});
|
||||
|
|
@ -35,10 +25,7 @@ describe('Snapshot', () => {
|
|||
cy.task('getSchema').then(schema => {
|
||||
cy.mockGraphql({
|
||||
schema,
|
||||
mocks: {
|
||||
UUID: () => '123-456-789',
|
||||
GenericStreamFieldType: () => 'GenericStreamFieldType',
|
||||
},
|
||||
mocks,
|
||||
});
|
||||
});
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,6 @@
|
|||
import {mockUpdateLastModule} from '../../support/helpers';
|
||||
import module from '../../fixtures/module.minimal';
|
||||
|
||||
const assignments = require('../../fixtures/assignments.json');
|
||||
const module = require('../../fixtures/module.json');
|
||||
const spellCheck = require('../../fixtures/spell-check.json');
|
||||
|
||||
const operations = {
|
||||
|
|
@ -11,22 +10,128 @@ const operations = {
|
|||
onboardingVisited: true,
|
||||
},
|
||||
},
|
||||
AssignmentsQuery: {
|
||||
assignments,
|
||||
AssignmentQuery: {
|
||||
assignment: {
|
||||
id: '',
|
||||
title: 'Ein Auftragstitel',
|
||||
assignment: 'Ein Auftrag',
|
||||
submission: {
|
||||
id: 'U3R1ZGVudFN1Ym1pc3Npb25Ob2RlOjE=',
|
||||
text: 'Hir ist ein Feler gewesen',
|
||||
final: false,
|
||||
document: '',
|
||||
submissionFeedback: {
|
||||
'id': 'U3VibWlzc2lvbkZlZWRiYWNrTm9kZTox',
|
||||
'text': '\ud83d\ude42\ud83d\ude10\ud83e\udd2c\ud83d\udc4d\ud83e\udd22\ud83e\udd22\ud83e\udd22\ud83e\udd22\ud83d\ude2e\ud83e\udd17',
|
||||
'teacher': {
|
||||
'firstName': 'Nico',
|
||||
'lastName': 'Zickgraf',
|
||||
'__typename': 'UserNode',
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
ModulesQuery: {
|
||||
module,
|
||||
ModuleDetailsQuery: {
|
||||
module: {
|
||||
...module,
|
||||
assignments: [
|
||||
{
|
||||
'id': 'QXNzaWdubWVudE5vZGU6MQ==',
|
||||
'title': 'Ein Auftragstitel',
|
||||
'assignment': 'Ein Auftrag',
|
||||
'solution': null,
|
||||
'submission': {
|
||||
'id': 'U3R1ZGVudFN1Ym1pc3Npb25Ob2RlOjE=',
|
||||
'text': 'Hir ist ein Feler gewesen',
|
||||
'final': false,
|
||||
'document': '',
|
||||
'submissionFeedback': {
|
||||
'id': 'U3VibWlzc2lvbkZlZWRiYWNrTm9kZTox',
|
||||
'text': '🙂😐🤬👍🤢🤢🤢🤢😮🤗',
|
||||
'teacher': {
|
||||
'firstName': 'Nico',
|
||||
'lastName': 'Zickgraf',
|
||||
'__typename': 'UserNode',
|
||||
},
|
||||
'__typename': 'SubmissionFeedbackNode',
|
||||
},
|
||||
'__typename': 'StudentSubmissionNode',
|
||||
},
|
||||
'__typename': 'AssignmentNode',
|
||||
},
|
||||
],
|
||||
chapters: [
|
||||
{
|
||||
'id': 'Q2hhcHRlck5vZGU6MTg=',
|
||||
'title': '1.1 Lehrbeginn',
|
||||
'description': 'Wie sieht Ihr Konsumverhalten aus?',
|
||||
'bookmark': {
|
||||
'note': {
|
||||
'id': 'Tm90ZU5vZGU6Mg==',
|
||||
'text': 'Chapter Chapter',
|
||||
'__typename': 'NoteNode',
|
||||
},
|
||||
'__typename': 'ChapterBookmarkNode',
|
||||
},
|
||||
contentBlocks: [
|
||||
{
|
||||
'id': 'Q29udGVudEJsb2NrTm9kZToxOQ==',
|
||||
'slug': 'assignment',
|
||||
'title': 'Assignment',
|
||||
'type': 'NORMAL',
|
||||
'contents': [
|
||||
{
|
||||
'type': 'assignment',
|
||||
'value': {
|
||||
'title': 'Ein Auftragstitel',
|
||||
'assignment': 'Ein Auftrag',
|
||||
'id': 'QXNzaWdubWVudE5vZGU6MQ==',
|
||||
},
|
||||
'id': 'df8212ee-3e82-49fa-977e-c4b60789163e',
|
||||
},
|
||||
],
|
||||
'userCreated': false,
|
||||
'mine': false,
|
||||
'bookmarks': [
|
||||
{
|
||||
'uuid': 'df8212ee-3e82-49fa-977e-c4b60789163e',
|
||||
'note': {
|
||||
'id': 'Tm90ZU5vZGU6Mw==',
|
||||
'text': 'Noch eine Notiz',
|
||||
'__typename': 'NoteNode',
|
||||
},
|
||||
'__typename': 'ContentBlockBookmarkNode',
|
||||
},
|
||||
],
|
||||
'hiddenFor': [],
|
||||
'visibleFor': [],
|
||||
'__typename': 'ContentBlockNode',
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
},
|
||||
SpellCheck: {
|
||||
spellCheck,
|
||||
},
|
||||
UpdateAssignment: {
|
||||
updateAssignment: {
|
||||
assignment: {
|
||||
id: '',
|
||||
title: 'title',
|
||||
assignment: '',
|
||||
solution: '',
|
||||
},
|
||||
},
|
||||
},
|
||||
...mockUpdateLastModule(),
|
||||
};
|
||||
|
||||
describe('Spellcheck', () => {
|
||||
before(() => {
|
||||
cy.server();
|
||||
|
||||
cy.task('getSchema').then(schema => {
|
||||
cy.mockGraphql({
|
||||
schema,
|
||||
|
|
@ -40,9 +145,7 @@ describe('Spellcheck', () => {
|
|||
cy.visit('/module/lohn-und-budget/');
|
||||
|
||||
cy.get('.spellcheck__correction').should('have.length', 0);
|
||||
|
||||
cy.get('.submission-form-container__spellcheck').click();
|
||||
|
||||
cy.get('.spellcheck__correction').should('have.length', 3);
|
||||
});
|
||||
});
|
||||
|
|
|
|||
|
|
@ -22,7 +22,7 @@ export const getMe = ({schoolClasses, teacher}) => {
|
|||
'firstName': 'Rahel',
|
||||
'lastName': 'Cueni',
|
||||
'avatarUrl': '',
|
||||
'isTeacher': false,
|
||||
'isTeacher': teacher,
|
||||
'lastModule': {
|
||||
'id': 'TW9kdWxlTm9kZToxNw==',
|
||||
'slug': 'lohn-und-budget',
|
||||
|
|
|
|||
|
|
@ -47,7 +47,7 @@
|
|||
</template>
|
||||
|
||||
<script>
|
||||
import {mapGetters, mapActions} from 'vuex';
|
||||
import {mapActions, mapGetters} from 'vuex';
|
||||
import ASSIGNMENT_QUERY from '@/graphql/gql/queries/assignmentQuery.gql';
|
||||
import ME_QUERY from '@/graphql/gql/queries/meQuery.gql';
|
||||
import UPDATE_ASSIGNMENT_MUTATION from '@/graphql/gql/mutations/updateAssignmentMutation.gql';
|
||||
|
|
@ -66,7 +66,7 @@
|
|||
components: {
|
||||
Solution,
|
||||
SubmissionForm,
|
||||
SpellCheck
|
||||
SpellCheck,
|
||||
},
|
||||
|
||||
data() {
|
||||
|
|
@ -75,13 +75,13 @@
|
|||
submission: this.initialSubmission(),
|
||||
},
|
||||
me: {
|
||||
permissions: []
|
||||
permissions: [],
|
||||
},
|
||||
inputType: 'text',
|
||||
unsaved: false,
|
||||
saving: 0,
|
||||
corrections: '',
|
||||
spellcheckLoading: false
|
||||
spellcheckLoading: false,
|
||||
};
|
||||
},
|
||||
|
||||
|
|
@ -98,7 +98,7 @@
|
|||
},
|
||||
solution() {
|
||||
return {
|
||||
text: this.assignment.solution
|
||||
text: this.assignment.solution,
|
||||
};
|
||||
},
|
||||
id() {
|
||||
|
|
@ -107,7 +107,7 @@
|
|||
feedbackText() {
|
||||
let feedback = this.assignment.submission.submissionFeedback;
|
||||
return `<span class="inline-title">Feedback von ${feedback.teacher.firstName} ${feedback.teacher.lastName}:</span> ${feedback.text}`;
|
||||
}
|
||||
},
|
||||
},
|
||||
|
||||
methods: {
|
||||
|
|
@ -122,20 +122,20 @@
|
|||
id: this.assignment.id,
|
||||
answer: this.assignment.submission.text,
|
||||
document: this.assignment.submission.document,
|
||||
}
|
||||
}
|
||||
},
|
||||
},
|
||||
},
|
||||
update(store, {data: {updateAssignment: {successful, updatedAssignment}}}) {
|
||||
try {
|
||||
if (successful) {
|
||||
const query = ASSIGNMENT_QUERY;
|
||||
const variables = {
|
||||
id: updatedAssignment.id
|
||||
id: updatedAssignment.id,
|
||||
};
|
||||
const data = store.readQuery({query, variables});
|
||||
|
||||
data.assignment = Object.assign({}, updatedAssignment, {
|
||||
submission
|
||||
submission,
|
||||
});
|
||||
store.writeQuery({query, variables, data});
|
||||
}
|
||||
|
|
@ -143,7 +143,7 @@
|
|||
console.error(e);
|
||||
// Query did not exist in the cache, and apollo throws a generic Error. Do nothing
|
||||
}
|
||||
}
|
||||
},
|
||||
}).then(() => {
|
||||
this.saving--;
|
||||
if (this.saving === 0) {
|
||||
|
|
@ -177,10 +177,10 @@
|
|||
id: this.assignment.id,
|
||||
answer: this.assignment.submission.text,
|
||||
document: this.assignment.submission.document,
|
||||
final: true
|
||||
}
|
||||
}
|
||||
}
|
||||
final: true,
|
||||
},
|
||||
},
|
||||
},
|
||||
});
|
||||
},
|
||||
reopen() {
|
||||
|
|
@ -192,10 +192,10 @@
|
|||
id: this.assignment.id,
|
||||
answer: this.assignment.submission.text,
|
||||
document: this.assignment.submission.document,
|
||||
final: false
|
||||
}
|
||||
}
|
||||
}
|
||||
final: false,
|
||||
},
|
||||
},
|
||||
},
|
||||
});
|
||||
},
|
||||
initialSubmission() {
|
||||
|
|
@ -213,16 +213,16 @@
|
|||
variables: {
|
||||
input: {
|
||||
assignment: this.assignment.id,
|
||||
text: this.assignment.submission.text
|
||||
}
|
||||
text: this.assignment.submission.text,
|
||||
},
|
||||
},
|
||||
update(store, {data: {spellCheck: {results}}}) {
|
||||
self.corrections = results;
|
||||
}
|
||||
},
|
||||
}).then(() => {
|
||||
this.spellcheckLoading = false;
|
||||
});
|
||||
}
|
||||
},
|
||||
},
|
||||
|
||||
apollo: {
|
||||
|
|
@ -230,7 +230,7 @@
|
|||
query: ASSIGNMENT_QUERY,
|
||||
variables() {
|
||||
return {
|
||||
id: this.value.id
|
||||
id: this.value.id,
|
||||
};
|
||||
},
|
||||
result(response) {
|
||||
|
|
@ -240,12 +240,12 @@
|
|||
if (this.assignment.id === this.scrollToAssignmentId && 'stale' in response) {
|
||||
this.$nextTick(() => this.scrollToAssignmentReady(true));
|
||||
}
|
||||
}
|
||||
},
|
||||
},
|
||||
me: {
|
||||
query: ME_QUERY
|
||||
}
|
||||
}
|
||||
query: ME_QUERY,
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue