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
|
||||
name
|
||||
code
|
||||
readOnly
|
||||
members {
|
||||
id
|
||||
firstName
|
||||
|
|
|
|||
|
|
@ -63,6 +63,10 @@
|
|||
{...member, active},
|
||||
...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});
|
||||
}
|
||||
},
|
||||
|
|
@ -73,19 +77,19 @@
|
|||
},
|
||||
remove(member) {
|
||||
this.$modal.open('deactivate-person', {
|
||||
myself: member.id === this.me.id,
|
||||
name: `${member.firstName} ${member.lastName}`,
|
||||
className: this.me.selectedClass.name,
|
||||
})
|
||||
.then(() => {
|
||||
this.changeMember(member, false);
|
||||
})
|
||||
.catch(() => {
|
||||
});
|
||||
myself: member.id === this.me.id,
|
||||
name: `${member.firstName} ${member.lastName}`,
|
||||
className: this.me.selectedClass.name,
|
||||
})
|
||||
.then(() => {
|
||||
this.changeMember(member, false);
|
||||
})
|
||||
.catch(() => {
|
||||
});
|
||||
},
|
||||
editClassName() {
|
||||
this.$store.dispatch('editClassName');
|
||||
}
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
|
|
|||
Loading…
Reference in New Issue