Update cache when leaving school class
This commit is contained in:
parent
53b5102114
commit
692eb13a9b
|
|
@ -0,0 +1,50 @@
|
||||||
|
import {getMinimalMe} from '../../../support/helpers';
|
||||||
|
|
||||||
|
const MeQuery = getMinimalMe({readOnly: false});
|
||||||
|
const me = MeQuery.me;
|
||||||
|
|
||||||
|
const getOperations = () => ({
|
||||||
|
MeQuery,
|
||||||
|
MySchoolClassQuery: {
|
||||||
|
me: {
|
||||||
|
...me,
|
||||||
|
id: 'meId',
|
||||||
|
selectedClass: {
|
||||||
|
...me.selectedClass,
|
||||||
|
members: [
|
||||||
|
{
|
||||||
|
id: 'meId',
|
||||||
|
firstName: 'Helge',
|
||||||
|
lastName: 'Schneider',
|
||||||
|
isTeacher: true,
|
||||||
|
isMe: true,
|
||||||
|
active: true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
},
|
||||||
|
AddRemoveMember: {
|
||||||
|
addRemoveMember: {
|
||||||
|
success: true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
describe('Leave School Class', () => {
|
||||||
|
beforeEach(() => {
|
||||||
|
cy.setup();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('leaves class', () => {
|
||||||
|
cy.mockGraphqlOps({
|
||||||
|
operations: getOperations(),
|
||||||
|
});
|
||||||
|
|
||||||
|
cy.visit('/me/class');
|
||||||
|
|
||||||
|
cy.getByDataCy('leave-group').click();
|
||||||
|
cy.getByDataCy('modal-save-button').click();
|
||||||
|
cy.getByDataCy('read-only-banner').should('exist');
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
@ -7,6 +7,7 @@ query MySchoolClassQuery {
|
||||||
id
|
id
|
||||||
name
|
name
|
||||||
code
|
code
|
||||||
|
readOnly
|
||||||
members {
|
members {
|
||||||
id
|
id
|
||||||
firstName
|
firstName
|
||||||
|
|
|
||||||
|
|
@ -63,6 +63,10 @@
|
||||||
{...member, active},
|
{...member, active},
|
||||||
...data.me.selectedClass.members.slice(memberIndex + 1),
|
...data.me.selectedClass.members.slice(memberIndex + 1),
|
||||||
];
|
];
|
||||||
|
if (member.isMe) {
|
||||||
|
// if we changed the currently selected class of the logged in user, we need to change this property too
|
||||||
|
data.me.selectedClass.readOnly = !active;
|
||||||
|
}
|
||||||
store.writeQuery({query, data});
|
store.writeQuery({query, data});
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
@ -73,19 +77,19 @@
|
||||||
},
|
},
|
||||||
remove(member) {
|
remove(member) {
|
||||||
this.$modal.open('deactivate-person', {
|
this.$modal.open('deactivate-person', {
|
||||||
myself: member.id === this.me.id,
|
myself: member.id === this.me.id,
|
||||||
name: `${member.firstName} ${member.lastName}`,
|
name: `${member.firstName} ${member.lastName}`,
|
||||||
className: this.me.selectedClass.name,
|
className: this.me.selectedClass.name,
|
||||||
})
|
})
|
||||||
.then(() => {
|
.then(() => {
|
||||||
this.changeMember(member, false);
|
this.changeMember(member, false);
|
||||||
})
|
})
|
||||||
.catch(() => {
|
.catch(() => {
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
editClassName() {
|
editClassName() {
|
||||||
this.$store.dispatch('editClassName');
|
this.$store.dispatch('editClassName');
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue