Add new cypress test and fix old ones

This commit is contained in:
Ramon Wenger 2020-03-10 10:16:30 +01:00
parent 442bab19bc
commit 394469d773
6 changed files with 152 additions and 46 deletions

View File

@ -7,6 +7,7 @@
"firstName": "Rahel",
"lastName": "Cueni",
"avatarUrl": "",
"isTeacher": false,
"lastModule": {
"id": "TW9kdWxlTm9kZToxNw==",
"slug": "lohn-und-budget",

View File

@ -408,6 +408,33 @@
"isDeprecated": false,
"deprecationReason": null
},
{
"name": "node",
"description": "The ID of the object",
"args": [
{
"name": "id",
"description": null,
"type": {
"kind": "NON_NULL",
"name": null,
"ofType": {
"kind": "SCALAR",
"name": "ID",
"ofType": null
}
},
"defaultValue": null
}
],
"type": {
"kind": "INTERFACE",
"name": "Node",
"ofType": null
},
"isDeprecated": false,
"deprecationReason": null
},
{
"name": "book",
"description": "The ID of the object",
@ -437,19 +464,15 @@
},
{
"name": "topic",
"description": "The ID of the object",
"description": null,
"args": [
{
"name": "id",
"name": "slug",
"description": null,
"type": {
"kind": "NON_NULL",
"name": null,
"ofType": {
"kind": "SCALAR",
"name": "ID",
"name": "String",
"ofType": null
}
},
"defaultValue": null
}
@ -1517,33 +1540,6 @@
"isDeprecated": false,
"deprecationReason": null
},
{
"name": "node",
"description": "The ID of the object",
"args": [
{
"name": "id",
"description": null,
"type": {
"kind": "NON_NULL",
"name": null,
"ofType": {
"kind": "SCALAR",
"name": "ID",
"ofType": null
}
},
"defaultValue": null
}
],
"type": {
"kind": "INTERFACE",
"name": "Node",
"ofType": null
},
"isDeprecated": false,
"deprecationReason": null
},
{
"name": "_debug",
"description": null,
@ -3081,6 +3077,69 @@
},
"isDeprecated": false,
"deprecationReason": null
},
{
"name": "oldClasses",
"description": null,
"args": [
{
"name": "before",
"description": null,
"type": {
"kind": "SCALAR",
"name": "String",
"ofType": null
},
"defaultValue": null
},
{
"name": "after",
"description": null,
"type": {
"kind": "SCALAR",
"name": "String",
"ofType": null
},
"defaultValue": null
},
{
"name": "first",
"description": null,
"type": {
"kind": "SCALAR",
"name": "Int",
"ofType": null
},
"defaultValue": null
},
{
"name": "last",
"description": null,
"type": {
"kind": "SCALAR",
"name": "Int",
"ofType": null
},
"defaultValue": null
},
{
"name": "name",
"description": null,
"type": {
"kind": "SCALAR",
"name": "String",
"ofType": null
},
"defaultValue": null
}
],
"type": {
"kind": "OBJECT",
"name": "SchoolClassNodeConnection",
"ofType": null
},
"isDeprecated": false,
"deprecationReason": null
}
],
"inputFields": null,

View File

@ -1,7 +1,7 @@
{
"me": {
"id": "VXNlck5vZGU6Mg==",
"isTeacher": true,
"isTeacher": false,
"selectedClass": {
"id": "U2Nob29sQ2xhc3NOb2RlOjE=",
"name": "Moordale",

View File

@ -37,8 +37,10 @@ describe('Class Management', () => {
cy.get('[data-cy=header-user-widget]').within(() => {
cy.get('[data-cy=user-widget-avatar]').click();
});
cy.get('[data-cy=class-selection]').click();
cy.get('[data-cy=class-selection-entry]').should('have.length', 1);
cy.get('[data-cy=class-selection]').click();
cy.get('[data-cy=join-class-link]').click();
@ -53,10 +55,32 @@ describe('Class Management', () => {
cy.get('[data-cy=class-selection-entry]').should('have.length', 2);
});
it.only('should leave and re-join class', () => {
it('should not be able to leave class', () => {
cy.mockGraphqlOps({
operations: {
MeQuery: me,
MySchoolClassQuery: selectedClass
}
});
cy.visit('/me/my-class');
cy.get('[data-cy=school-class-member]').should('have.length', 2);
cy.get('[data-cy=remove-from-class]').should('have.length', 0);
cy.get('[data-cy=add-to-class]').should('have.length', 0);
});
it('should leave and re-join class', () => {
const teacher = {
...me,
permissions: ['users.can_manage_school_class_content']
me: {
...me.me,
isTeacher: true
}
};
const teacherSelectedClass = {
me: {
...selectedClass.me,
isTeacher: true
}
};
cy.mockGraphqlOps({
operations: {
@ -66,7 +90,7 @@ describe('Class Management', () => {
success: true
}
},
MySchoolClassQuery: selectedClass
MySchoolClassQuery: teacherSelectedClass
}
});
@ -96,4 +120,27 @@ describe('Class Management', () => {
cy.get('[data-cy=school-class-member]').should('have.length', 0)
});
});
it.only('should display old classes', () => {
let oldClasses = me.me.schoolClasses;
let OldClassesQuery = {
me: {
...me.me,
oldClasses
},
};
debugger;
cy.mockGraphqlOps({
operations: {
MeQuery: me,
OldClassesQuery
}
});
cy.visit('/me/old-classes');
cy.get('[data-cy=old-class-item]').should('have.length', 1);
});
});

View File

@ -2,7 +2,7 @@
<div class="school-class">
<h2 class="school-class__name">{{name}}</h2>
<div class="school-class__members school-class-members">
<ul class="school-class-members__list simple-list simple-list--active" data-cy="active-class-simple-list">
<ul class="school-class-members__list simple-list simple-list--active" data-cy="active-class-members-list">
<li
class="simple-list__item member-item"
data-cy="school-class-member"
@ -11,14 +11,14 @@
<span class="member-item__name">{{fullName(member)}}</span>
<span class="member-item__role">{{role(member)}}</span>
<a
class="member-item__action"
class="member-item__action simple-list__action"
data-cy="remove-from-class"
v-if="teacher"
@click="$emit('remove', member)">Deaktivieren</a>
</li>
</ul>
<h3 class="school-class__inactive-heading">Deaktivierte Benutzer</h3>
<ul data-cy="inactive-class-simple-list" class="simple-list simple-list--inactive">
<ul data-cy="inactive-class-members-list" class="simple-list simple-list--inactive">
<li
class="simple-list__item member-item"
data-cy="school-class-member"

View File

@ -2,7 +2,7 @@
<div class="old-classes">
<h1 class="old-classes__title">Alte Klassen</h1>
<ul class="old-classes__list simple-list">
<li class="simple-list__item" v-for="schoolClass in me.oldClasses" :key="schoolClass.id"><span
<li class="simple-list__item" v-for="schoolClass in me.oldClasses" :key="schoolClass.id" data-cy="old-class-item"><span
class="old-classes__class-name">{{schoolClass.name}}</span> <a
class="simple-list__action" @click="updateSelectedClassAndGoToClassList(schoolClass)">Anzeigen</a>
</li>
@ -40,7 +40,6 @@
data: () => ({
me: {
oldClasses: []
}
})
}