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", "firstName": "Rahel",
"lastName": "Cueni", "lastName": "Cueni",
"avatarUrl": "", "avatarUrl": "",
"isTeacher": false,
"lastModule": { "lastModule": {
"id": "TW9kdWxlTm9kZToxNw==", "id": "TW9kdWxlTm9kZToxNw==",
"slug": "lohn-und-budget", "slug": "lohn-und-budget",

View File

@ -408,6 +408,33 @@
"isDeprecated": false, "isDeprecated": false,
"deprecationReason": null "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", "name": "book",
"description": "The ID of the object", "description": "The ID of the object",
@ -437,19 +464,15 @@
}, },
{ {
"name": "topic", "name": "topic",
"description": "The ID of the object", "description": null,
"args": [ "args": [
{ {
"name": "id", "name": "slug",
"description": null, "description": null,
"type": { "type": {
"kind": "NON_NULL", "kind": "SCALAR",
"name": null, "name": "String",
"ofType": { "ofType": null
"kind": "SCALAR",
"name": "ID",
"ofType": null
}
}, },
"defaultValue": null "defaultValue": null
} }
@ -1517,33 +1540,6 @@
"isDeprecated": false, "isDeprecated": false,
"deprecationReason": null "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", "name": "_debug",
"description": null, "description": null,
@ -3081,6 +3077,69 @@
}, },
"isDeprecated": false, "isDeprecated": false,
"deprecationReason": null "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, "inputFields": null,

View File

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

View File

@ -37,8 +37,10 @@ describe('Class Management', () => {
cy.get('[data-cy=header-user-widget]').within(() => { cy.get('[data-cy=header-user-widget]').within(() => {
cy.get('[data-cy=user-widget-avatar]').click(); cy.get('[data-cy=user-widget-avatar]').click();
}); });
cy.get('[data-cy=class-selection]').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-entry]').should('have.length', 1);
cy.get('[data-cy=class-selection]').click();
cy.get('[data-cy=join-class-link]').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); 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 = { const teacher = {
...me, me: {
permissions: ['users.can_manage_school_class_content'] ...me.me,
isTeacher: true
}
};
const teacherSelectedClass = {
me: {
...selectedClass.me,
isTeacher: true
}
}; };
cy.mockGraphqlOps({ cy.mockGraphqlOps({
operations: { operations: {
@ -66,7 +90,7 @@ describe('Class Management', () => {
success: true success: true
} }
}, },
MySchoolClassQuery: selectedClass MySchoolClassQuery: teacherSelectedClass
} }
}); });
@ -96,4 +120,27 @@ describe('Class Management', () => {
cy.get('[data-cy=school-class-member]').should('have.length', 0) 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"> <div class="school-class">
<h2 class="school-class__name">{{name}}</h2> <h2 class="school-class__name">{{name}}</h2>
<div class="school-class__members school-class-members"> <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 <li
class="simple-list__item member-item" class="simple-list__item member-item"
data-cy="school-class-member" data-cy="school-class-member"
@ -11,14 +11,14 @@
<span class="member-item__name">{{fullName(member)}}</span> <span class="member-item__name">{{fullName(member)}}</span>
<span class="member-item__role">{{role(member)}}</span> <span class="member-item__role">{{role(member)}}</span>
<a <a
class="member-item__action" class="member-item__action simple-list__action"
data-cy="remove-from-class" data-cy="remove-from-class"
v-if="teacher" v-if="teacher"
@click="$emit('remove', member)">Deaktivieren</a> @click="$emit('remove', member)">Deaktivieren</a>
</li> </li>
</ul> </ul>
<h3 class="school-class__inactive-heading">Deaktivierte Benutzer</h3> <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 <li
class="simple-list__item member-item" class="simple-list__item member-item"
data-cy="school-class-member" data-cy="school-class-member"

View File

@ -2,7 +2,7 @@
<div class="old-classes"> <div class="old-classes">
<h1 class="old-classes__title">Alte Klassen</h1> <h1 class="old-classes__title">Alte Klassen</h1>
<ul class="old-classes__list simple-list"> <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="old-classes__class-name">{{schoolClass.name}}</span> <a
class="simple-list__action" @click="updateSelectedClassAndGoToClassList(schoolClass)">Anzeigen</a> class="simple-list__action" @click="updateSelectedClassAndGoToClassList(schoolClass)">Anzeigen</a>
</li> </li>
@ -40,7 +40,6 @@
data: () => ({ data: () => ({
me: { me: {
oldClasses: [] oldClasses: []
} }
}) })
} }