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 readOnly: false
}), }),
ClassMemberNode: () => ({ ClassMemberNode: () => ({
firstName: 'First Name',
lastName: 'Last Name',
active: true, active: true,
isTeacher: false, isTeacher: false,
isMe: false isMe: false

View File

@ -17,11 +17,6 @@ const members = [
}, },
]; ];
const getSelectedClass = (classMembers = members) => ({
name: 'Moordale',
members: classMembers
});
describe('School Class Management', () => { describe('School Class Management', () => {
beforeEach(() => { beforeEach(() => {
cy.setup(); cy.setup();
@ -133,18 +128,13 @@ describe('School Class Management', () => {
cy.get('[data-cy=modal-save-button]').click(); cy.get('[data-cy=modal-save-button]').click();
cy.get('[data-cy=active-class-members-list]').within(() => { cy.getByDataCy('active-member').should('have.length', 1);
cy.get('[data-cy=group-list-member]').should('have.length', 1); cy.getByDataCy('inactive-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.get('[data-cy=add-to-class]').first().click(); cy.get('[data-cy=add-to-class]').first().click();
cy.get('[data-cy=active-class-members-list]').within(() => { cy.getByDataCy('active-member').should('have.length', 2);
cy.get('[data-cy=group-list-member]').should('have.length', 2);
});
cy.get('[data-cy=inactive-class-members-list]').should('not.exist'); 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', () => { 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'; const name = 'Hill Valley';
let selectedClass = teacher.selectedClass; let selectedClass = teacher.selectedClass;

View File

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

View File

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

View File

@ -25,7 +25,7 @@
<li <li
:key="member.id" :key="member.id"
class="simple-list__item member-item" class="simple-list__item member-item"
data-cy="group-list-member" data-cy="active-member"
v-for="member in activeMembers"> v-for="member in activeMembers">
<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>
@ -49,7 +49,7 @@
<li <li
:key="member.id" :key="member.id"
class="simple-list__item member-item" class="simple-list__item member-item"
data-cy="group-list-member" data-cy="inactive-member"
v-for="member in inactiveMembers"> v-for="member in inactiveMembers">
<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>

View File

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