Fix bug in modal text

This commit is contained in:
Ramon Wenger 2021-08-13 16:59:03 +02:00
parent cec562589f
commit 27d3525ea5
6 changed files with 63 additions and 23 deletions

View File

@ -62,6 +62,8 @@ export default {
readOnly: false
}),
ClassMemberNode: () => ({
firstName: 'First Name',
lastName: 'Last Name',
active: true,
isTeacher: false,
isMe: false

View File

@ -17,11 +17,6 @@ const members = [
},
];
const getSelectedClass = (classMembers = members) => ({
name: 'Moordale',
members: classMembers
});
describe('School Class Management', () => {
beforeEach(() => {
cy.setup();
@ -133,18 +128,13 @@ describe('School Class Management', () => {
cy.get('[data-cy=modal-save-button]').click();
cy.get('[data-cy=active-class-members-list]').within(() => {
cy.get('[data-cy=group-list-member]').should('have.length', 1);
});
cy.get('[data-cy=inactive-class-members-list]').within(() => {
cy.get('[data-cy=group-list-member]').should('have.length', 1);
});
cy.getByDataCy('active-member').should('have.length', 1);
cy.getByDataCy('inactive-member').should('have.length', 1);
cy.get('[data-cy=add-to-class]').first().click();
cy.get('[data-cy=active-class-members-list]').within(() => {
cy.get('[data-cy=group-list-member]').should('have.length', 2);
});
cy.getByDataCy('active-member').should('have.length', 2);
cy.get('[data-cy=inactive-class-members-list]').should('not.exist');
});
@ -212,10 +202,54 @@ describe('Teacher Class Management', () => {
});
it('removes student, then leaves class', () => {
cy.get('not-implemented');
const myId = btoa('PrivateUserNode:1');
const memberId = btoa('GroupMemberNode:1');
let classMembers = [
{...teacher, id: myId, isMe: true, isTeacher: true},
...members
];
let me = () => ({
...teacher,
id: memberId,
selectedClass: {
name: 'Just some class',
id: 'selectedClassId',
readOnly: false,
members: classMembers
}
});
cy.mockGraphqlOps({
operations: {
MeQuery: {
me: me()
},
AddRemoveMember: {
addRemoveMember: {
success: true,
},
},
MySchoolClassQuery: {
me: me()
},
},
});
cy.visit('/me/my-class');
cy.getByDataCy('active-member').should('have.length', 3);
cy.getByDataCy('remove-from-class').first().click();
cy.getByDataCy('deactivate-person-modal').should('exist');
cy.getByDataCy('modal-body-text').should('contain', 'deaktivieren');
cy.getByDataCy('modal-save-button').click();
cy.getByDataCy('active-member').should('have.length', 2);
cy.getByDataCy('leave-group').click();
cy.getByDataCy('deactivate-person-modal').should('exist');
cy.getByDataCy('modal-body-text').should('contain', 'verlassen');
cy.getByDataCy('modal-save-button').click();
cy.getByDataCy('active-member').should('have.length', 1);
});
it.only('creates a new class', () => {
it('creates a new class', () => {
const name = 'Hill Valley';
let selectedClass = teacher.selectedClass;

View File

@ -2,7 +2,7 @@
export const getMinimalMe = ({readOnly = false, classReadOnly = false, isTeacher = true}) => ({
me: {
id: 'meId',
id: btoa('PrivateUserNode:1'),
readOnly,
isTeacher,
selectedClass: {

View File

@ -2,6 +2,7 @@
<modal
:hide-header="true"
:small="true"
data-cy="deactivate-person-modal"
class="deactivate-user">
<h3 class="deactivate-user__heading">
<template v-if="myself">
@ -12,7 +13,9 @@
</template>
deaktivieren
</h3>
<p class="deactivate-user__text deactivate-user__paragraph">
<p
class="deactivate-user__text deactivate-user__paragraph"
data-cy="modal-body-text">
<template v-if="myself">
Möchten Sie die Klasse <strong class="deactivate-user__text--strong">{{ schoolClass }}</strong> verlassen?
</template>
@ -95,8 +98,7 @@
</script>
<style scoped lang="scss">
@import "@/styles/_variables.scss";
@import "@/styles/_mixins.scss";
@import "~styles/helpers";
.deactivate-user {
&__heading {

View File

@ -25,7 +25,7 @@
<li
:key="member.id"
class="simple-list__item member-item"
data-cy="group-list-member"
data-cy="active-member"
v-for="member in activeMembers">
<span class="member-item__name">{{ fullName(member) }}</span>
<span class="member-item__role">{{ role(member) }} </span>
@ -49,7 +49,7 @@
<li
:key="member.id"
class="simple-list__item member-item"
data-cy="group-list-member"
data-cy="inactive-member"
v-for="member in inactiveMembers">
<span class="member-item__name">{{ fullName(member) }}</span>
<span class="member-item__role">{{ role(member) }}</span>

View File

@ -76,8 +76,10 @@
this.changeMember(member, true);
},
remove(member) {
const memberId = atob(member.id).split(':')[1];
const meId = atob(this.me.id).split(':')[1];
this.$modal.open('deactivate-person', {
myself: member.id === this.me.id,
myself: memberId === meId,
name: `${member.firstName} ${member.lastName}`,
className: this.me.selectedClass.name,
})