Skip to content
Snippets Groups Projects
Commit 6308c13b authored by Martin's avatar Martin
Browse files

OZG-5977 OZG-7845 add E2E for single kommentar form only

parent 11d5507c
No related branches found
No related tags found
1 merge request!89Ozg 5977 e2 e
...@@ -25,7 +25,7 @@ import { convertToDataTestId } from '../../support/tech.util'; ...@@ -25,7 +25,7 @@ import { convertToDataTestId } from '../../support/tech.util';
export class AttachmentContainerE2EComponent { export class AttachmentContainerE2EComponent {
private readonly multiUploadInput: string = 'multi-file-upload-button'; private readonly multiUploadInput: string = 'multi-file-upload-button';
//
private readonly attachmentList: AttachmentListE2EComponent = new AttachmentListE2EComponent(); private readonly attachmentList: AttachmentListE2EComponent = new AttachmentListE2EComponent();
public getList(): AttachmentListE2EComponent { public getList(): AttachmentListE2EComponent {
...@@ -40,33 +40,23 @@ export class AttachmentContainerE2EComponent { ...@@ -40,33 +40,23 @@ export class AttachmentContainerE2EComponent {
export class AttachmentListE2EComponent { export class AttachmentListE2EComponent {
private readonly locatorRoot: string = 'file-list'; private readonly locatorRoot: string = 'file-list';
private readonly downloadAttachmentsButton: string = 'download-archive-file-button';
public getRoot(): Cypress.Chainable<HTMLElement> { public getRoot(): Cypress.Chainable<HTMLElement> {
return cy.getTestElement(this.locatorRoot); return cy.getTestElement(this.locatorRoot);
} }
public getItem(fileName: string): AttachmentE2EItem { public getItem(fileName: string): AttachmentListItemE2EComponent {
return new AttachmentE2EItem(fileName); return new AttachmentListItemE2EComponent(fileName);
}
public getLoadingOrErrorItem(fileName: string): LoadingErrorAttachmentE2EItem {
return new LoadingErrorAttachmentE2EItem(fileName);
}
public getDownloadAttachmentsButton(): Cypress.Chainable<HTMLElement> {
return this.getRoot().findTestElementWithClass(this.downloadAttachmentsButton);
} }
public downloadAttachments(): Cypress.Chainable<any> { public getLoadingOrErrorItem(fileName: string): LoadingErrorAttachmentListeItemE2EComponent {
return this.getDownloadAttachmentsButton().click(); return new LoadingErrorAttachmentListeItemE2EComponent(fileName);
} }
} }
//TODO Rename AttachmentListItemE2EComponent export class AttachmentListItemE2EComponent {
export class AttachmentE2EItem { private readonly deleteButton: string = 'delete-file-button';
private readonly locatorDeleteButton: string = 'delete-file-button'; private readonly downloadButton: string = 'download-file-button';
private readonly locatorDownloadButton: string = 'download-file-button';
private locatorRoot: string; private locatorRoot: string;
...@@ -79,16 +69,15 @@ export class AttachmentE2EItem { ...@@ -79,16 +69,15 @@ export class AttachmentE2EItem {
} }
public getDeleteButton(): Cypress.Chainable<HTMLElement> { public getDeleteButton(): Cypress.Chainable<HTMLElement> {
return this.getRoot().findTestElementWithClass(this.locatorDeleteButton); return this.getRoot().findTestElementWithClass(this.deleteButton);
} }
public getDownloadButton(): Cypress.Chainable<HTMLElement> { public getDownloadButton(): Cypress.Chainable<HTMLElement> {
return this.getRoot().findTestElementWithClass(this.locatorDownloadButton); return this.getRoot().findTestElementWithClass(this.downloadButton);
} }
} }
//TODO Zu AttachmentListItemE2EComponent packen export class LoadingErrorAttachmentListeItemE2EComponent {
class LoadingErrorAttachmentE2EItem {
private readonly root: string; private readonly root: string;
private readonly attachmentSuffix: string = '-file-upload-list-item-attachment-upload'; private readonly attachmentSuffix: string = '-file-upload-list-item-attachment-upload';
......
...@@ -25,54 +25,60 @@ import { convertToDataTestId } from '../../support/tech.util'; ...@@ -25,54 +25,60 @@ import { convertToDataTestId } from '../../support/tech.util';
import { AttachmentContainerE2EComponent } from '../attachment/attachment.e2e.component'; import { AttachmentContainerE2EComponent } from '../attachment/attachment.e2e.component';
import { UserProfileE2EComponent } from '../user-profile/user-profile.component.e2e'; import { UserProfileE2EComponent } from '../user-profile/user-profile.component.e2e';
export class KommentareInVorgangE2EComponent { export class KommentarListInVorgangE2EComponent {
readonly locatorHinzufuegenButton: string = 'create-kommentar'; readonly hinzufuegenButton: string = 'create-kommentar';
readonly locatorFormular: string = 'kommentar-formular';
readonly locatorFormularSpeichernButton: string = 'add-button';
readonly locatorFormularAbbrechenButton: string = 'cancel-button';
readonly locatorKommentarList: string = 'kommentar-list-in-vorgang';
readonly locatorTextInput: string = 'Kommentar-textarea-input';
readonly locatorTextError: string = 'Kommentar-textarea-error';
private readonly attachmentContainer: AttachmentContainerE2EComponent = readonly root: string = 'kommentar-container-in-vorgang';
new AttachmentContainerE2EComponent();
readonly locatorRoot: string = 'kommentar-container-in-vorgang'; readonly kommentarList: string = 'kommentar-list-in-vorgang';
public getRoot() { readonly formular: string = 'kommentar-formular';
return cy.getTestElement(this.locatorRoot); readonly formularItem: string = 'kommentar-list-item-form';
readonly formularSpeichernButton: string = 'add-button';
readonly formularAbbrechenButton: string = 'cancel-button';
readonly textInput: string = 'Kommentar-textarea-input';
readonly textError: string = 'Kommentar-textarea-error';
private readonly attachmentContainer: AttachmentContainerE2EComponent = new AttachmentContainerE2EComponent();
public getRoot(): Cypress.Chainable<Element> {
return cy.getTestElement(this.root);
} }
public getFormular() { public getFormular(): Cypress.Chainable<Element> {
return cy.getTestElement(this.locatorFormular); return cy.getTestElement(this.formular);
} }
public getHinzufuegenButton() { public getFormulare(): Cypress.Chainable<Element[]> {
return cy.getTestElement(this.locatorHinzufuegenButton); return cy.getTestElement(this.formularItem);
} }
public getFormularSpeichernButton() { public getHinzufuegenButton(): Cypress.Chainable<Element> {
return cy.getTestElement(this.locatorFormularSpeichernButton); return cy.getTestElement(this.hinzufuegenButton);
} }
public getFormularAbbrechenButton() { public getFormularSpeichernButton(): Cypress.Chainable<Element> {
return cy.getTestElement(this.locatorFormularAbbrechenButton); return cy.getTestElement(this.formularSpeichernButton);
} }
public getKommentarList() { public getFormularAbbrechenButton(): Cypress.Chainable<Element> {
return cy.getTestElement(this.locatorKommentarList); return cy.getTestElement(this.formularAbbrechenButton);
} }
public getTextInput() { public getKommentarList(): Cypress.Chainable<Element> {
return cy.getTestElement(this.locatorTextInput); return cy.getTestElement(this.kommentarList);
} }
public getTextError() { public getTextInput(): Cypress.Chainable<Element> {
return cy.getTestElement(this.locatorTextError); return cy.getTestElement(this.textInput);
} }
public getKommentar(text: string): KommentarInVorgangE2E { public getTextError(): Cypress.Chainable<Element> {
return new KommentarInVorgangE2E(text); return cy.getTestElement(this.textError);
}
public getKommentar(text: string): KommentarInVorgangE2EComponent {
return new KommentarInVorgangE2EComponent(text);
} }
public getAttachmentContainer(): AttachmentContainerE2EComponent { public getAttachmentContainer(): AttachmentContainerE2EComponent {
...@@ -80,26 +86,24 @@ export class KommentareInVorgangE2EComponent { ...@@ -80,26 +86,24 @@ export class KommentareInVorgangE2EComponent {
} }
} }
export class KommentarInVorgangE2E { export class KommentarInVorgangE2EComponent {
//TODO: Rename to KommentarInVorgangE2EComponent private readonly root: string;
private readonly locatorCreatedAt: string = 'kommentar-created-at';
private readonly locatorRoot: string; private readonly createdAtInput: string = 'kommentar-created-at';
constructor(private text: string) { constructor(private text: string) {
this.locatorRoot = 'kommentar-item-' + convertToDataTestId(this.text); this.root = 'kommentar-item-' + convertToDataTestId(this.text);
} }
public getRoot() { public getRoot(): Cypress.Chainable<Element> {
return cy.getTestElement(this.locatorRoot); return cy.getTestElement(this.root);
} }
public getUserProfile(): UserProfileE2EComponent { public getUserProfile(): UserProfileE2EComponent {
return new UserProfileE2EComponent(this.locatorRoot); return new UserProfileE2EComponent(this.root);
} }
public getCreatedAt() { public getCreatedAt(): Cypress.Chainable<Element> {
return cy.getTestElement(this.locatorCreatedAt); return this.getRoot().findTestElementWithClass(this.createdAtInput);
} }
} }
...@@ -26,7 +26,7 @@ import { ...@@ -26,7 +26,7 @@ import {
AttachmentContainerE2EComponent, AttachmentContainerE2EComponent,
AttachmentListE2EComponent, AttachmentListE2EComponent,
} from '../../../components/attachment/attachment.e2e.component'; } from '../../../components/attachment/attachment.e2e.component';
import { KommentareInVorgangE2EComponent } from '../../../components/kommentar/kommentar-list.e2e.component'; import { KommentarListInVorgangE2EComponent } from '../../../components/kommentar/kommentar-list.e2e.component';
import { VorgangListE2EComponent } from '../../../components/vorgang/vorgang-list.e2e.component'; import { VorgangListE2EComponent } from '../../../components/vorgang/vorgang-list.e2e.component';
import { VorgangE2E } from '../../../model/vorgang'; import { VorgangE2E } from '../../../model/vorgang';
import { MainPage, waitForSpinnerToDisappear } from '../../../page-objects/main.po'; import { MainPage, waitForSpinnerToDisappear } from '../../../page-objects/main.po';
...@@ -43,7 +43,7 @@ describe('Kommentar attachments', () => { ...@@ -43,7 +43,7 @@ describe('Kommentar attachments', () => {
const vorgangList: VorgangListE2EComponent = mainPage.getVorgangList(); const vorgangList: VorgangListE2EComponent = mainPage.getVorgangList();
const vorgangPage: VorgangPage = new VorgangPage(); const vorgangPage: VorgangPage = new VorgangPage();
const kommentarContainer: KommentareInVorgangE2EComponent = vorgangPage.getKommentarContainer(); const kommentarContainer: KommentarListInVorgangE2EComponent = vorgangPage.getKommentarContainer();
const attachmentContainer: AttachmentContainerE2EComponent = kommentarContainer.getAttachmentContainer(); const attachmentContainer: AttachmentContainerE2EComponent = kommentarContainer.getAttachmentContainer();
const attachmentList: AttachmentListE2EComponent = attachmentContainer.getList(); const attachmentList: AttachmentListE2EComponent = attachmentContainer.getList();
......
...@@ -21,13 +21,13 @@ ...@@ -21,13 +21,13 @@
* Die sprachspezifischen Genehmigungen und Beschränkungen * Die sprachspezifischen Genehmigungen und Beschränkungen
* unter der Lizenz sind dem Lizenztext zu entnehmen. * unter der Lizenz sind dem Lizenztext zu entnehmen.
*/ */
import { KommentareInVorgangE2EComponent } from '../../../components/kommentar/kommentar-list.e2e.component'; import { KommentarListInVorgangE2EComponent } from '../../../components/kommentar/kommentar-list.e2e.component';
import { UserE2E } from '../../../model/user'; import { UserE2E } from '../../../model/user';
import { VorgangE2E } from '../../../model/vorgang'; import { VorgangE2E } from '../../../model/vorgang';
import { MainPage, waitForSpinnerToDisappear } from '../../../page-objects/main.po'; import { MainPage, waitForSpinnerToDisappear } from '../../../page-objects/main.po';
import { VorgangPage } from '../../../page-objects/vorgang.po'; import { VorgangPage } from '../../../page-objects/vorgang.po';
import { dropCollections } from '../../../support/cypress-helper'; import { dropCollections } from '../../../support/cypress-helper';
import { contains, exist, haveText, notExist } from '../../../support/cypress.util'; import { contains, exist, haveLength, haveText, notExist } from '../../../support/cypress.util';
import { getUserSabine, initUsermanagerUsers, loginAsSabine } from '../../../support/user-util'; import { getUserSabine, initUsermanagerUsers, loginAsSabine } from '../../../support/user-util';
import { createVorgang, initVorgang } from '../../../support/vorgang-util'; import { createVorgang, initVorgang } from '../../../support/vorgang-util';
...@@ -35,7 +35,7 @@ describe('Kommentar', () => { ...@@ -35,7 +35,7 @@ describe('Kommentar', () => {
const mainPage: MainPage = new MainPage(); const mainPage: MainPage = new MainPage();
const vorgangPage: VorgangPage = new VorgangPage(); const vorgangPage: VorgangPage = new VorgangPage();
const kommentarContainer: KommentareInVorgangE2EComponent = vorgangPage.getKommentarContainer(); const kommentarContainer: KommentarListInVorgangE2EComponent = vorgangPage.getKommentarContainer();
const kommentarText: string = 'Test text to test the test text test'; const kommentarText: string = 'Test text to test the test text test';
...@@ -90,7 +90,7 @@ describe('Kommentar', () => { ...@@ -90,7 +90,7 @@ describe('Kommentar', () => {
}); });
describe('click on hinzufuegen button in formular', () => { describe('click on hinzufuegen button in formular', () => {
it('should show error on invalid input', () => { it('should show error on empty text', () => {
kommentarContainer.getFormularSpeichernButton().click(); kommentarContainer.getFormularSpeichernButton().click();
waitForSpinnerToDisappear(); waitForSpinnerToDisappear();
...@@ -101,53 +101,22 @@ describe('Kommentar', () => { ...@@ -101,53 +101,22 @@ describe('Kommentar', () => {
kommentarContainer.getTextInput().clear().type(kommentarText); kommentarContainer.getTextInput().clear().type(kommentarText);
kommentarContainer.getFormularSpeichernButton().click(); kommentarContainer.getFormularSpeichernButton().click();
exist(vorgangPage.getSpinner());
notExist(
kommentarContainer
.getKommentar(kommentarText)
.getUserProfile()
.getIconContainer()
.getAssignedIcon(),
);
exist(vorgangPage.getSpinner());
waitForSpinnerToDisappear(); waitForSpinnerToDisappear();
exist(
kommentarContainer
.getKommentar(kommentarText)
.getUserProfile()
.getIconContainer()
.getAssignedIcon(),
);
// exist(kommentarContainer.getKommentar(kommentarText).getUserProfile().getIconContainer().getAssignedIcon());
notExist(kommentarContainer.getTextError()); notExist(kommentarContainer.getTextError());
notExist(kommentarContainer.getFormular()); notExist(kommentarContainer.getFormular());
exist(kommentarContainer.getHinzufuegenButton()); exist(kommentarContainer.getHinzufuegenButton());
});
it('should show entry in list', () => {
exist(kommentarContainer.getKommentar(kommentarText).getRoot()); exist(kommentarContainer.getKommentar(kommentarText).getRoot());
}); });
it('should show user profile at kommentar', () => { it.skip('should show user profile at kommentar', () => {
exist( exist(kommentarContainer.getKommentar(kommentarText).getUserProfile().getIconContainer().getAssignedIcon());
kommentarContainer
.getKommentar(kommentarText)
.getUserProfile()
.getIconContainer()
.getAssignedIcon(),
);
haveText( haveText(
kommentarContainer kommentarContainer.getKommentar(kommentarText).getUserProfile().getIconContainer().getAssignedIcon(),
.getKommentar(kommentarText)
.getUserProfile()
.getIconContainer()
.getAssignedIcon(),
userSabine.initials, userSabine.initials,
); );
contains( contains(kommentarContainer.getKommentar(kommentarText).getUserProfile().getName(), userSabine.fullName);
kommentarContainer.getKommentar(kommentarText).getUserProfile().getName(),
userSabine.fullName,
);
exist(kommentarContainer.getKommentar(kommentarText).getCreatedAt()); exist(kommentarContainer.getKommentar(kommentarText).getCreatedAt());
}); });
}); });
...@@ -212,5 +181,27 @@ describe('Kommentar', () => { ...@@ -212,5 +181,27 @@ describe('Kommentar', () => {
exist(kommentarContainer.getHinzufuegenButton()); exist(kommentarContainer.getHinzufuegenButton());
}); });
}); });
describe('other kommentar', () => {
const otherKommentar: string = 'otherKommentar';
it('should be created', () => {
kommentarContainer.getHinzufuegenButton().click();
kommentarContainer.getTextInput().clear().type(otherKommentar);
kommentarContainer.getFormularSpeichernButton().click();
waitForSpinnerToDisappear();
haveLength(kommentarContainer.getFormulare(), 0);
exist(kommentarContainer.getKommentar(otherKommentar).getRoot());
});
it('should hide previous opened kommentar on edit other kommentar', () => {
kommentarContainer.getKommentar(kommentarText).getRoot().click();
haveLength(kommentarContainer.getFormulare(), 1);
kommentarContainer.getKommentar(otherKommentar).getRoot().click();
haveLength(kommentarContainer.getFormulare(), 1);
});
});
}); });
}); });
...@@ -22,7 +22,7 @@ ...@@ -22,7 +22,7 @@
* unter der Lizenz sind dem Lizenztext zu entnehmen. * unter der Lizenz sind dem Lizenztext zu entnehmen.
*/ */
import { AttachmentContainerE2EComponent } from '../components/attachment/attachment.e2e.component'; import { AttachmentContainerE2EComponent } from '../components/attachment/attachment.e2e.component';
import { KommentareInVorgangE2EComponent } from '../components/kommentar/kommentar-list.e2e.component'; import { KommentarListInVorgangE2EComponent } from '../components/kommentar/kommentar-list.e2e.component';
import { PostfachMailFormularE2EComponent } from '../components/postfach/postfach-mail-formular.e2e.component'; import { PostfachMailFormularE2EComponent } from '../components/postfach/postfach-mail-formular.e2e.component';
import { PostfachMailE2EComponent } from '../components/postfach/postfach-mail.e2e.component'; import { PostfachMailE2EComponent } from '../components/postfach/postfach-mail.e2e.component';
import { FixedDialogE2EComponent } from '../components/ui/fixed-dialog.e2e.component'; import { FixedDialogE2EComponent } from '../components/ui/fixed-dialog.e2e.component';
...@@ -40,42 +40,29 @@ import { VorgangZusammenarbeitE2EComponent } from '../components/vorgang/vorgang ...@@ -40,42 +40,29 @@ import { VorgangZusammenarbeitE2EComponent } from '../components/vorgang/vorgang
import { WiedervorlagenInVorgangE2EComponent } from '../components/wiedervorlage/wiedervorlagen-in-vorgang.e2e.component'; import { WiedervorlagenInVorgangE2EComponent } from '../components/wiedervorlage/wiedervorlagen-in-vorgang.e2e.component';
export class VorgangPage { export class VorgangPage {
private readonly subnavigation: VorgangSubnavigationE2EComponent = private readonly subnavigation: VorgangSubnavigationE2EComponent = new VorgangSubnavigationE2EComponent();
new VorgangSubnavigationE2EComponent(); private readonly vorgangDetailHeader: VorgangDetailHeaderE2EComponent = new VorgangDetailHeaderE2EComponent();
private readonly vorgangDetailHeader: VorgangDetailHeaderE2EComponent = private readonly formularDatenContainer: VorgangFormularDatenE2EComponent = new VorgangFormularDatenE2EComponent();
new VorgangDetailHeaderE2EComponent(); private readonly formularButtons: VorgangFormularButtonsE2EComponent = new VorgangFormularButtonsE2EComponent();
private readonly formularDatenContainer: VorgangFormularDatenE2EComponent =
new VorgangFormularDatenE2EComponent();
private readonly formularButtons: VorgangFormularButtonsE2EComponent =
new VorgangFormularButtonsE2EComponent();
private readonly moreMenu: VorgangMoreMenuE2EComponent = new VorgangMoreMenuE2EComponent(); private readonly moreMenu: VorgangMoreMenuE2EComponent = new VorgangMoreMenuE2EComponent();
private readonly aktenzeichenEditor: VorgangAktenzeichenEditE2EComponent = private readonly aktenzeichenEditor: VorgangAktenzeichenEditE2EComponent = new VorgangAktenzeichenEditE2EComponent();
new VorgangAktenzeichenEditE2EComponent(); private readonly bescheidWizard: VorgangBescheidWizardE2EComponent = new VorgangBescheidWizardE2EComponent();
private readonly bescheidWizard: VorgangBescheidWizardE2EComponent =
new VorgangBescheidWizardE2EComponent();
private readonly bescheide: VorgangBescheideE2EComponent = new VorgangBescheideE2EComponent(); private readonly bescheide: VorgangBescheideE2EComponent = new VorgangBescheideE2EComponent();
private readonly wiedervorlagen: WiedervorlagenInVorgangE2EComponent = private readonly wiedervorlagen: WiedervorlagenInVorgangE2EComponent = new WiedervorlagenInVorgangE2EComponent();
new WiedervorlagenInVorgangE2EComponent(); private readonly forwardingContainer: VorgangForwardingE2EComponent = new VorgangForwardingE2EComponent();
private readonly forwardingContainer: VorgangForwardingE2EComponent = private readonly attachmentContainer: AttachmentContainerE2EComponent = new AttachmentContainerE2EComponent();
new VorgangForwardingE2EComponent(); private readonly kommentarContainer: KommentarListInVorgangE2EComponent = new KommentarListInVorgangE2EComponent();
private readonly attachmentContainer: AttachmentContainerE2EComponent =
new AttachmentContainerE2EComponent();
private readonly kommentarContainer: KommentareInVorgangE2EComponent =
new KommentareInVorgangE2EComponent();
private readonly postfachMailContainer: PostfachMailE2EComponent = new PostfachMailE2EComponent(); private readonly postfachMailContainer: PostfachMailE2EComponent = new PostfachMailE2EComponent();
private readonly antragstellerContainer: AntragstellerE2EComponent = private readonly antragstellerContainer: AntragstellerE2EComponent = new AntragstellerE2EComponent();
new AntragstellerE2EComponent(); private readonly zusammenArbeitContainer: VorgangZusammenarbeitE2EComponent = new VorgangZusammenarbeitE2EComponent();
private readonly zusammenArbeitContainer: VorgangZusammenarbeitE2EComponent =
new VorgangZusammenarbeitE2EComponent();
private readonly fixedDialog: FixedDialogE2EComponent = new FixedDialogE2EComponent(); private readonly fixedDialog: FixedDialogE2EComponent = new FixedDialogE2EComponent();
private readonly postfachMailFormular: PostfachMailFormularE2EComponent = private readonly postfachMailFormular: PostfachMailFormularE2EComponent = new PostfachMailFormularE2EComponent();
new PostfachMailFormularE2EComponent();
private readonly locatorSpinner: string = 'spinner'; private readonly locatorSpinner: string = 'spinner';
private readonly locatorProgressBar: string = 'progress-bar'; private readonly locatorProgressBar: string = 'progress-bar';
public getKommentarContainer(): KommentareInVorgangE2EComponent { public getKommentarContainer(): KommentarListInVorgangE2EComponent {
return this.kommentarContainer; return this.kommentarContainer;
} }
......
...@@ -32,7 +32,7 @@ ...@@ -32,7 +32,7 @@
[kommentar]="kommentar" [kommentar]="kommentar"
data-test-class="kommentar-created-by" data-test-class="kommentar-created-by"
></alfa-user-profile-in-kommentar-container> ></alfa-user-profile-in-kommentar-container>
<span data-test-id="kommentar-created-at" class="date text-sm">{{ <span data-test-class="kommentar-created-at" class="date text-sm">{{
kommentar.createdAt | formatDateWithTimePipe: false kommentar.createdAt | formatDateWithTimePipe: false
}}</span> }}</span>
</div> </div>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment