diff --git a/client/cypress/integration/frontend/assignment.spec.js b/client/cypress/integration/frontend/assignment.spec.js index 09cb4d0b..9dcbbd7c 100644 --- a/client/cypress/integration/frontend/assignment.spec.js +++ b/client/cypress/integration/frontend/assignment.spec.js @@ -1,19 +1,40 @@ -const operations = { - ModulesQuery: {}, - AssignmentWithSubmissions: { - assignment: { - title: 'Ein Auftragstitel', - solution: '
Eine Lรถsung
', - assignment: 'Ein Auftrag', - submissions: [], - }, - }, - MeQuery: { - me: {}, - }, -}; - describe('Assignments', () => { + const studentSubmission = { + id: 'submission-id', + text: '', + document: '', + assignment: {}, + submissionFeedback: { + id: 'feedback-id', + text: '', + final: false, + }, + }; + + const operations = { + ModulesQuery: {}, + AssignmentWithSubmissions: { + assignment: { + title: 'Ein Auftragstitel', + solution: 'Eine Lรถsung
', + assignment: 'Ein Auftrag', + submissions: [studentSubmission], + }, + }, + MeQuery: { + me: {}, + }, + ModuleDetailsQuery: {}, + StudentSubmissions: { + studentSubmission + }, + UpdateSubmissionFeedback: { + updateSubmissionFeedback: { + successful: true, + }, + }, + }; + beforeEach(() => { cy.setup(); @@ -26,4 +47,14 @@ describe('Assignments', () => { cy.visit('/module/lohn-und-budget/submissions/QXNzaWdubWVudE5vZGU6MQ=='); cy.getByDataCy('assignment-solution').should('have.text', 'Eine Lรถsung'); }); + + it('gives feedback as teacher (with Emojis ๐ง)', () => { + const finalText = 'This is a feedback ๐๏ธ'; + cy.visit('/submission/submission-id'); + cy.getByDataCy('submission-textarea').type('This is a feedback '); + cy.getByDataCy('emoji-button').should('have.length', 9).first().click(); + cy.getByDataCy('submission-textarea').should('have.value', finalText); + cy.getByDataCy('submission-form-submit').click(); + cy.getByDataCy('submission-form-submit').should('not.exist'); + }); }); diff --git a/client/cypress/integration/frontend/rooms/article-page.spec.js b/client/cypress/integration/frontend/rooms/article-page.spec.js new file mode 100644 index 00000000..f0d3398f --- /dev/null +++ b/client/cypress/integration/frontend/rooms/article-page.spec.js @@ -0,0 +1,25 @@ +import {getMinimalMe} from '../../../support/helpers'; + +describe('Article page', () => { + const operations = { + MeQuery: getMinimalMe({}), + RoomEntryQuery: {} + }; + + beforeEach(() => { + cy.setup(); + }); + + it('goes to article and leaves a comment', () => { + cy.mockGraphqlOps({ + operations + }); + + const commentText = 'First!'; + cy.visit('/article/this-article-has-a-slug'); + cy.getByDataCy('emoji-button').should('have.length', 9); + cy.getByDataCy('add-comment-input').type(commentText); + cy.getByDataCy('submit-comment').should('contain', 'Kommentar teilen').click(); + cy.getByDataCy('comment').first().should('contain', commentText); + }); +}); diff --git a/client/src/components/content-blocks/assignment/SubmissionForm.vue b/client/src/components/content-blocks/assignment/SubmissionForm.vue index 3c4dcfc0..472d418c 100644 --- a/client/src/components/content-blocks/assignment/SubmissionForm.vue +++ b/client/src/components/content-blocks/assignment/SubmissionForm.vue @@ -129,12 +129,8 @@ @import '~styles/helpers'; .submission-form-container { + @include form-with-border; - @include input-box-shadow; - background-color: $color-white; - border-radius: $input-border-radius; - border: 1px solid $color-silver; - padding: $medium-spacing; margin-bottom: $medium-spacing; &__inputs { diff --git a/client/src/components/content-blocks/assignment/SubmissionInput.vue b/client/src/components/content-blocks/assignment/SubmissionInput.vue index e00f4adc..733ead81 100644 --- a/client/src/components/content-blocks/assignment/SubmissionInput.vue +++ b/client/src/components/content-blocks/assignment/SubmissionInput.vue @@ -6,6 +6,7 @@ :readonly="readonly" :value="inputText" :class="{'submission-form__textarea--readonly': readonly}" + data-cy="submission-textarea" rows="1" class="submission-form__textarea" @input="$emit('input', $event.target.value)" @@ -53,15 +54,7 @@ justify-content: space-between; &__textarea { - display: flex; - width: 95%; - padding: 0; - box-sizing: border-box; - border-bottom-left-radius: 0; - border-bottom-right-radius: 0; - line-height: 1.5; - border: 0; - min-height: 110px; + @include borderless-textarea; } &__save-status { diff --git a/client/src/components/ui/EmojiBar.vue b/client/src/components/ui/EmojiBar.vue new file mode 100644 index 00000000..3ce4aaab --- /dev/null +++ b/client/src/components/ui/EmojiBar.vue @@ -0,0 +1,25 @@ + +