diff --git a/goofy-client/apps/goofy-e2e/src/components/kommentar/kommentar-list.e2e.component.ts b/goofy-client/apps/goofy-e2e/src/components/kommentar/kommentar-list.e2e.component.ts index 57e54c0517eeae4dee5e93f26ec0c0ceae825d49..3496fae7f1de53701ae0fc9c091cf50d5aa088da 100644 --- a/goofy-client/apps/goofy-e2e/src/components/kommentar/kommentar-list.e2e.component.ts +++ b/goofy-client/apps/goofy-e2e/src/components/kommentar/kommentar-list.e2e.component.ts @@ -23,6 +23,7 @@ */ import { convertToDataTestId } from '../../support/tech.util'; import { UserProfileE2EComponent } from '../user-profile/user-profile.component.e2e'; +import { AttachmentContainerE2EComponent } from '../attachment/attachment.e2e.component'; export class KommentareInVorgangE2EComponent { @@ -34,6 +35,9 @@ export class KommentareInVorgangE2EComponent { readonly locatorTextInput: string = 'Kommentar-textarea-input'; readonly locatorTextError: string = 'Kommentar-textarea-error'; + private readonly attachmentContainer: AttachmentContainerE2EComponent = new AttachmentContainerE2EComponent(); + + readonly locatorRoot: string = 'kommentar-container-in-vorgang'; public getRoot() { @@ -71,6 +75,10 @@ export class KommentareInVorgangE2EComponent { public getKommentar(text: string): KommentarInVorgangE2E { return new KommentarInVorgangE2E(text); } + + public getAttachmentContainer(): AttachmentContainerE2EComponent { + return this.attachmentContainer; + } } class KommentarInVorgangE2E { diff --git a/goofy-client/apps/goofy-e2e/src/integration/main-tests/kommentar-attachment/kommentar-attachment.e2e-spec.ts b/goofy-client/apps/goofy-e2e/src/integration/main-tests/kommentar-attachment/kommentar-attachment.e2e-spec.ts new file mode 100644 index 0000000000000000000000000000000000000000..ce64e2a4f4e52f6c0cf454cdd1f448a7680e4c56 --- /dev/null +++ b/goofy-client/apps/goofy-e2e/src/integration/main-tests/kommentar-attachment/kommentar-attachment.e2e-spec.ts @@ -0,0 +1,149 @@ +/* + * Copyright (C) 2022 Das Land Schleswig-Holstein vertreten durch den + * Ministerpräsidenten des Landes Schleswig-Holstein + * Staatskanzlei + * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung + * + * Lizenziert unter der EUPL, Version 1.2 oder - sobald + * diese von der Europäischen Kommission genehmigt wurden - + * Folgeversionen der EUPL ("Lizenz"); + * Sie dürfen dieses Werk ausschließlich gemäß + * dieser Lizenz nutzen. + * Eine Kopie der Lizenz finden Sie hier: + * + * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 + * + * Sofern nicht durch anwendbare Rechtsvorschriften + * gefordert oder in schriftlicher Form vereinbart, wird + * die unter der Lizenz verbreitete Software "so wie sie + * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - + * ausdrücklich oder stillschweigend - verbreitet. + * Die sprachspezifischen Genehmigungen und Beschränkungen + * unter der Lizenz sind dem Lizenztext zu entnehmen. + */ +import { KommentareInVorgangE2EComponent } from '../../../components/kommentar/kommentar-list.e2e.component'; +import { UserE2E } from '../../../model/user'; +import { VorgangE2E } from '../../../model/vorgang'; +import { MainPage, waitForSpinnerToDisappear } from '../../../page-objects/main.po'; +import { VorgangPage } from '../../../page-objects/vorgang.po'; +import { dropCollections, readFileFromDownloads } from '../../../support/cypress-helper'; +import { exist, notExist } from '../../../support/cypress.util'; +import { getUserSabine, loginAsSabine } from '../../../support/user-util'; +import { createVorgang, initVorgang } from '../../../support/vorgang-util'; +import { VorgangListE2EComponent } from '../../../components/vorgang/vorgang-list.e2e.component'; +import { AttachmentContainerE2EComponent, AttachmentListE2EComponent } from '../../../components/attachment/attachment.e2e.component'; +import { uploadFile } from '../../../support/file-upload'; +import { TEST_FILE_WITH_CONTENT, TEST_FILE_WITHOUT_CONTENT } from '../../../support/data.util'; + +describe('Kommentar attachments', () => { + const mainPage: MainPage = new MainPage(); + const vorgangList: VorgangListE2EComponent = mainPage.getVorgangList(); + + const vorgangPage: VorgangPage = new VorgangPage(); + const kommentarContainer: KommentareInVorgangE2EComponent = vorgangPage.getKommentarContainer(); + + const attachmentContainer: AttachmentContainerE2EComponent = kommentarContainer.getAttachmentContainer(); + const attachmentList: AttachmentListE2EComponent = attachmentContainer.getList(); + + const kommentarText: string = 'Test text to test the test text test'; + + const vorgang: VorgangE2E = createVorgang(); + const userSabine: UserE2E = getUserSabine(); + + before(() => { + initVorgang(vorgang); + + loginAsSabine(); + + waitForSpinnerToDisappear(); + exist(mainPage.getVorgangList().getRoot()); + }) + + after(() => { + dropCollections(); + }) + + describe('Upload attachements', () => { + + it('should navigate to Vorgang', () => { + vorgangList.getListItem(vorgang.name).getRoot().click(); + waitForSpinnerToDisappear(); + + exist(vorgangPage.getVorgangDetailHeader().getRoot()); + }); + + it('should show button for uploading attachments when creating new Kommentar', () => { + kommentarContainer.getHinzufuegenButton().click(); + waitForSpinnerToDisappear(); + + exist(attachmentContainer.getUploadInput()); + }); + + it('should upload attachements', () => { + uploadFile(attachmentContainer.getUploadInput(), TEST_FILE_WITH_CONTENT); + waitForSpinnerToDisappear(); + + uploadFile(attachmentContainer.getUploadInput(), TEST_FILE_WITHOUT_CONTENT); + waitForSpinnerToDisappear(); + + exist(attachmentList.getItem(TEST_FILE_WITH_CONTENT).getRoot()); + exist(attachmentList.getItem(TEST_FILE_WITHOUT_CONTENT).getRoot()); + }); + + it('should show attachements after saving Kommentar', () => { + kommentarContainer.getTextInput().type(kommentarText); + kommentarContainer.getFormularSpeichernButton().click(); + waitForSpinnerToDisappear(); + + exist(attachmentList.getItem(TEST_FILE_WITH_CONTENT).getRoot()); + exist(attachmentList.getItem(TEST_FILE_WITHOUT_CONTENT).getRoot()); + }); + }); + + describe('Delete attachements', () => { + it('should delete attachments', () => { + kommentarContainer.getKommentar(kommentarText).getRoot().click(); + waitForSpinnerToDisappear(); + + attachmentList.getItem(TEST_FILE_WITH_CONTENT).getDeleteButton().click(); + waitForSpinnerToDisappear(); + + attachmentList.getItem(TEST_FILE_WITHOUT_CONTENT).getDeleteButton().click(); + waitForSpinnerToDisappear(); + + notExist(attachmentList.getItem(TEST_FILE_WITH_CONTENT).getRoot()); + notExist(attachmentList.getItem(TEST_FILE_WITHOUT_CONTENT).getRoot()); + }); + + it('should not show attachments after saving Kommentar', () => { + kommentarContainer.getFormularSpeichernButton().click(); + waitForSpinnerToDisappear(); + + notExist(attachmentList.getItem(TEST_FILE_WITH_CONTENT).getRoot()); + notExist(attachmentList.getItem(TEST_FILE_WITHOUT_CONTENT).getRoot()); + }); + }); + + describe('Download Kommentar attachments', () => { + it('should upload attachment', () => { + kommentarContainer.getKommentar(kommentarText).getRoot().click(); + waitForSpinnerToDisappear(); + + uploadFile(attachmentContainer.getUploadInput(), TEST_FILE_WITH_CONTENT); + waitForSpinnerToDisappear(); + + kommentarContainer.getFormularSpeichernButton().click(); + waitForSpinnerToDisappear(); + + exist(attachmentList.getItem(TEST_FILE_WITH_CONTENT).getRoot()); + }); + + it('should download uploaded attachment', () => { + attachmentList.getItem(TEST_FILE_WITH_CONTENT).getDownloadButton().click(); + waitForSpinnerToDisappear(); + + exist(readFileFromDownloads(TEST_FILE_WITH_CONTENT)); + }); + }); + +});