Add new test for room entry actions

This commit is contained in:
Ramon Wenger 2021-08-31 18:24:50 +02:00
parent 8c5bc36728
commit de03792029
3 changed files with 46 additions and 3 deletions

View File

@ -173,4 +173,42 @@ describe('The Room Page', () => {
cy.url().should('include', 'rooms');
cy.getByDataCy('room-widget').should('have.length', 1);
});
it('edits own room entry', () => {
const MeQuery = getMinimalMe({isTeacher: false});
const {me} = MeQuery;
const id = atob(me.id).split(':')[1];
const authorId = btoa(`PublicUserNode:${id}`);
const room = {
id: 'some-room',
roomEntries: {
edges: [
{
node: {
id: '',
slug: '',
contents: [],
author: {
...me,
id: authorId
}
}
}
]
}
};
const operations = {
MeQuery: MeQuery,
RoomEntriesQuery: {
room
},
RoomEntryQuery: {}
};
cy.mockGraphqlOps({
operations
});
cy.visit(`/room/${slug}`);
cy.getByDataCy('room-entry-actions').click();
cy.getByDataCy('edit-room-entry').click();
});
});

View File

@ -1,6 +1,6 @@
// todo: clean up this file
export const getMinimalMe = ({readOnly = false, classReadOnly = false, isTeacher = true}) => ({
export const getMinimalMe = ({readOnly = false, classReadOnly = false, isTeacher = true} = {}) => ({
me: {
id: btoa('PrivateUserNode:1'),
readOnly,

View File

@ -2,9 +2,12 @@
<div class="room-entry">
<more-options-widget
class="room-entry__more"
data-cy="room-entry-actions"
v-if="myEntry">
<li class="popover-links__link"><a @click="deleteRoomEntry(id)">Eintrag löschen</a></li>
<li class="popover-links__link"><a @click="editRoomEntry(id)">Eintrag bearbeiten</a></li>
<li class="popover-links__link"><a
data-cy="edit-room-entry"
@click="editRoomEntry(id)">Eintrag bearbeiten</a></li>
</more-options-widget>
<router-link
:to="{name: 'article', params: { slug: slug }}"
@ -61,7 +64,9 @@
return teaser(this.contents);
},
myEntry() {
return this.author.id === this.me.id;
const authorId = atob(this.author.id).split(':')[1];
const userId = atob(this.me.id).split(':')[1];
return authorId === userId;
}
},