Add new cypress test and fix old ones
This commit is contained in:
parent
442bab19bc
commit
394469d773
|
|
@ -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",
|
||||||
|
|
|
||||||
|
|
@ -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,
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"me": {
|
"me": {
|
||||||
"id": "VXNlck5vZGU6Mg==",
|
"id": "VXNlck5vZGU6Mg==",
|
||||||
"isTeacher": true,
|
"isTeacher": false,
|
||||||
"selectedClass": {
|
"selectedClass": {
|
||||||
"id": "U2Nob29sQ2xhc3NOb2RlOjE=",
|
"id": "U2Nob29sQ2xhc3NOb2RlOjE=",
|
||||||
"name": "Moordale",
|
"name": "Moordale",
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
|
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -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"
|
||||||
|
|
|
||||||
|
|
@ -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: []
|
||||||
|
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue