Skip to content
Snippets Groups Projects
Commit 3ea7c714 authored by Martin Küster's avatar Martin Küster
Browse files

Merge branch 'RefactorE2ETest' into 'main'

refactor E2E test

See merge request !110
parents 4f0c2cc0 6696343e
Branches
Tags
1 merge request!110refactor E2E test
...@@ -21,24 +21,20 @@ ...@@ -21,24 +21,20 @@
* 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 { VorgangFormularButtonsE2EComponent } from 'apps/alfa-e2e/src/components/vorgang/vorgang-formular-buttons.e2e.components'; import { E2EAppHelper } from 'apps/alfa-e2e/src/helper/app.helper';
import { SnackBarE2EComponent } from '../../../components/ui/snackbar.e2e.component'; import { E2EVorgangHelper } from 'apps/alfa-e2e/src/helper/vorgang/vorgang.helper';
import { VorgangListE2EComponent } from '../../../components/vorgang/vorgang-list.e2e.component'; import { E2EVorgangNavigator } from 'apps/alfa-e2e/src/helper/vorgang/vorgang.navigator';
import { VorgangE2E, VorgangMessagesE2E, VorgangStatusE2E, vorgangStatusLabelE2E } from '../../../model/vorgang'; import { E2EVorgangVerifier } from 'apps/alfa-e2e/src/helper/vorgang/vorgang.verifier';
import { MainPage, waitForSpinnerToDisappear } from '../../../page-objects/main.po'; import { VorgangE2E, VorgangMessagesE2E, VorgangStatusE2E } from '../../../model/vorgang';
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 { loginAsSabine } from '../../../support/user-util';
import { buildVorgang, createVorgang, initVorgaenge, objectIds } from '../../../support/vorgang-util'; import { buildVorgang, createVorgang, initVorgaenge, objectIds } from '../../../support/vorgang-util';
describe('Vorgang wiedereroeffnen', () => { describe('Vorgang wiedereroeffnen', () => {
const mainPage: MainPage = new MainPage(); const appHelper: E2EAppHelper = new E2EAppHelper();
const vorgangList: VorgangListE2EComponent = mainPage.getVorgangList();
const snackbar: SnackBarE2EComponent = mainPage.getSnackBar();
const vorgangPage: VorgangPage = new VorgangPage(); const helper: E2EVorgangHelper = new E2EVorgangHelper();
const vorgangFormularButtons: VorgangFormularButtonsE2EComponent = vorgangPage.getFormularButtons(); const navigator: E2EVorgangNavigator = new E2EVorgangNavigator();
const verifier: E2EVorgangVerifier = new E2EVorgangVerifier();
const vorgangBeschiedenWiedereroeffnen: VorgangE2E = { const vorgangBeschiedenWiedereroeffnen: VorgangE2E = {
...createVorgang(), ...createVorgang(),
...@@ -66,10 +62,7 @@ describe('Vorgang wiedereroeffnen', () => { ...@@ -66,10 +62,7 @@ describe('Vorgang wiedereroeffnen', () => {
vorgangAbgeschlossenWiedereroeffnenRevoke, vorgangAbgeschlossenWiedereroeffnenRevoke,
]); ]);
loginAsSabine(); appHelper.loginAsSabine();
waitForSpinnerToDisappear();
exist(vorgangList.getRoot());
}); });
after(() => { after(() => {
...@@ -77,105 +70,48 @@ describe('Vorgang wiedereroeffnen', () => { ...@@ -77,105 +70,48 @@ describe('Vorgang wiedereroeffnen', () => {
}); });
describe('vorgang in status beschieden', () => { describe('vorgang in status beschieden', () => {
describe('wiedereroeffnen', () => { it('should show vorgang status', () => {
it('Open Vorgang-Detail-Page', () => { navigator.openVorgang(vorgangBeschiedenWiedereroeffnen.name);
vorgangList.getListItem(vorgangBeschiedenWiedereroeffnen.name).getRoot().click();
waitForSpinnerToDisappear();
exist(vorgangPage.getVorgangDetailHeader().getRoot()); verifier.verifyStatus(VorgangStatusE2E.BESCHIEDEN);
}); });
describe('wiedereroeffnen', () => {
describe('by button', () => { describe('by button', () => {
it('should have status Beschieden', () => { it('should change status to wiedereroeffnet', () => {
haveText( helper.wiedereroeffnenByButton();
vorgangPage.getVorgangDetailHeader().getStatus(),
vorgangStatusLabelE2E[vorgangBeschiedenWiedereroeffnen.status],
);
});
it('should show snackBar message', () => {
vorgangFormularButtons.getWiedereroeffnenButton().click();
waitForSpinnerToDisappear();
exist(snackbar.getCloseButton());
contains(snackbar.getMessage(), VorgangMessagesE2E.WIEDEREROEFFNET);
});
it('should close snackBar on close', () => {
snackbar.getCloseButton().click();
notExist(snackbar.getMessage());
});
it('should have status In Bearbeitung', () => { verifier.verifyStatus(VorgangStatusE2E.IN_BEARBEITUNG);
haveText(vorgangPage.getVorgangDetailHeader().getStatus(), vorgangStatusLabelE2E[VorgangStatusE2E.IN_BEARBEITUNG]);
}); });
it('back to vorgang list', () => { it('should have new status in list after navigate back', () => {
vorgangPage.getSubnavigation().getBackButton().click(); helper.navigateBack();
waitForSpinnerToDisappear();
exist(vorgangList.getRoot()); verifier.verifyStatusInList(vorgangBeschiedenWiedereroeffnen.name, VorgangStatusE2E.IN_BEARBEITUNG);
});
it('should have status In Bearbeitung', () => {
haveText(
vorgangList.getListItem(vorgangBeschiedenWiedereroeffnen.name).getStatus(),
vorgangStatusLabelE2E[VorgangStatusE2E.IN_BEARBEITUNG],
);
}); });
}); });
}); });
describe('wiedereroeffnen und rückgängig machen', () => { describe('wiedereroeffnen und rückgängig machen', () => {
it('Open Vorgang-Detail-Page', () => { it('should show vorgang status', () => {
vorgangList.getListItem(vorgangBeschiedenWiedereroeffnenRevoke.name).getRoot().click(); navigator.openVorgang(vorgangBeschiedenWiedereroeffnenRevoke.name);
waitForSpinnerToDisappear();
exist(vorgangPage.getVorgangDetailHeader().getRoot()); verifier.verifyStatus(VorgangStatusE2E.BESCHIEDEN);
}); });
describe('by icon-button', () => { describe('by icon-button', () => {
it('should have status Beschieden', () => { it('should have status Beschieden', () => {
haveText( helper.wiedereroeffnenByIconButton();
vorgangPage.getVorgangDetailHeader().getStatus(),
vorgangStatusLabelE2E[vorgangBeschiedenWiedereroeffnenRevoke.status],
);
});
it('should show snackBar message', () => {
vorgangPage.getSubnavigation().getWiedereroeffnenIconButton().click();
waitForSpinnerToDisappear();
exist(snackbar.getCloseButton());
contains(snackbar.getMessage(), VorgangMessagesE2E.WIEDEREROEFFNET);
});
it('should click on snackbar revoke', () => { appHelper.revokeAndCloseSnackbar(VorgangMessagesE2E.WIEDEREROEFFNET);
snackbar.getRevokeButton().click();
waitForSpinnerToDisappear();
notExist(snackbar.getMessage()); verifier.verifyStatus(VorgangStatusE2E.BESCHIEDEN);
}); });
it('should show status Beschieden', () => { it('should have reverted status in list after navigate back', () => {
waitForSpinnerToDisappear(); helper.navigateBack();
haveText(vorgangPage.getVorgangDetailHeader().getStatus(), vorgangStatusLabelE2E[VorgangStatusE2E.BESCHIEDEN]); verifier.verifyStatusInList(vorgangBeschiedenWiedereroeffnenRevoke.name, VorgangStatusE2E.BESCHIEDEN);
});
it('back to vorgang list', () => {
vorgangPage.getSubnavigation().getBackButton().click();
waitForSpinnerToDisappear();
exist(vorgangList.getRoot());
});
it('should have status Beschieden', () => {
haveText(
vorgangList.getListItem(vorgangBeschiedenWiedereroeffnenRevoke.name).getStatus(),
vorgangStatusLabelE2E[VorgangStatusE2E.BESCHIEDEN],
);
}); });
}); });
}); });
...@@ -183,104 +119,49 @@ describe('Vorgang wiedereroeffnen', () => { ...@@ -183,104 +119,49 @@ describe('Vorgang wiedereroeffnen', () => {
describe('vorgang in status abgeschlossen', () => { describe('vorgang in status abgeschlossen', () => {
describe('wiedereroeffnen', () => { describe('wiedereroeffnen', () => {
it('Open Vorgang-Detail-Page', () => { it('should show vorgang status', () => {
vorgangList.getListItem(vorgangAbgeschlossenWiedereroeffnen.name).getRoot().click(); navigator.openVorgang(vorgangAbgeschlossenWiedereroeffnen.name);
waitForSpinnerToDisappear();
exist(vorgangPage.getVorgangDetailHeader().getRoot()); verifier.verifyStatus(VorgangStatusE2E.ABGESCHLOSSEN);
}); });
describe('by button', () => { describe('wiedereroeffnen', () => {
it('should have status Abgeschlossen', () => { describe('by button', () => {
haveText( it('should change status to wiedereroeffnet', () => {
vorgangPage.getVorgangDetailHeader().getStatus(), helper.wiedereroeffnenByButton();
vorgangStatusLabelE2E[vorgangAbgeschlossenWiedereroeffnen.status],
);
});
it('should show snackBar', () => {
vorgangFormularButtons.getWiedereroeffnenButton().click();
waitForSpinnerToDisappear();
exist(snackbar.getCloseButton());
contains(snackbar.getMessage(), VorgangMessagesE2E.WIEDEREROEFFNET);
});
it('should close snackBar on close', () => {
snackbar.getCloseButton().click();
notExist(snackbar.getMessage()); verifier.verifyStatus(VorgangStatusE2E.IN_BEARBEITUNG);
}); });
it('should have status In Bearbeitung', () => {
haveText(vorgangPage.getVorgangDetailHeader().getStatus(), vorgangStatusLabelE2E[VorgangStatusE2E.IN_BEARBEITUNG]);
});
it('back to vorgang list', () => { it('should have new status in list after navigate back', () => {
vorgangPage.getSubnavigation().getBackButton().click(); helper.navigateBack();
waitForSpinnerToDisappear();
exist(vorgangList.getRoot()); verifier.verifyStatusInList(vorgangAbgeschlossenWiedereroeffnen.name, VorgangStatusE2E.IN_BEARBEITUNG);
});
}); });
it('should have status In Bearbeitung', () => {
haveText(
vorgangList.getListItem(vorgangAbgeschlossenWiedereroeffnen.name).getStatus(),
vorgangStatusLabelE2E[VorgangStatusE2E.IN_BEARBEITUNG],
);
});
});
});
describe('wiedereroeffnen und rückgängig machen', () => {
it('Open Vorgang-Detail-Page', () => {
vorgangList.getListItem(vorgangAbgeschlossenWiedereroeffnenRevoke.name).getRoot().click();
waitForSpinnerToDisappear();
exist(vorgangPage.getVorgangDetailHeader().getRoot());
}); });
describe('by icon-button', () => { describe('wiedereroeffnen und rückgängig machen', () => {
it('should have status Abgeschlossen', () => { it('should show vorgang status', () => {
haveText( navigator.openVorgang(vorgangAbgeschlossenWiedereroeffnenRevoke.name);
vorgangPage.getVorgangDetailHeader().getStatus(),
vorgangStatusLabelE2E[vorgangAbgeschlossenWiedereroeffnenRevoke.status],
);
});
it('should show snackBar', () => {
vorgangPage.getSubnavigation().getWiedereroeffnenIconButton().click();
waitForSpinnerToDisappear();
exist(snackbar.getCloseButton());
contains(snackbar.getMessage(), VorgangMessagesE2E.WIEDEREROEFFNET);
});
it('should click snackbar revoke', () => {
snackbar.getRevokeButton().click();
waitForSpinnerToDisappear();
notExist(snackbar.getMessage()); verifier.verifyStatus(VorgangStatusE2E.ABGESCHLOSSEN);
}); });
it('should show status Abgeschlossen', () => { describe('by icon-button', () => {
notExist(vorgangPage.getProgressBar()); it('should have status Beschieden', () => {
helper.wiedereroeffnenByIconButton();
haveText(vorgangPage.getVorgangDetailHeader().getStatus(), vorgangStatusLabelE2E[VorgangStatusE2E.ABGESCHLOSSEN]); appHelper.revokeAndCloseSnackbar(VorgangMessagesE2E.WIEDEREROEFFNET);
});
it('back to vorgang list', () => { verifier.verifyStatus(VorgangStatusE2E.ABGESCHLOSSEN);
vorgangPage.getSubnavigation().getBackButton().click(); });
waitForSpinnerToDisappear();
exist(vorgangList.getRoot()); it('should have reverted status in list after navigate back', () => {
}); helper.navigateBack();
it('should have status Abgeschlossen', () => { verifier.verifyStatusInList(vorgangAbgeschlossenWiedereroeffnenRevoke.name, VorgangStatusE2E.ABGESCHLOSSEN);
haveText( });
vorgangList.getListItem(vorgangAbgeschlossenWiedereroeffnenRevoke.name).getStatus(),
vorgangStatusLabelE2E[VorgangStatusE2E.ABGESCHLOSSEN],
);
}); });
}); });
}); });
......
import { SnackBarE2EComponent } from '../components/ui/snackbar.e2e.component';
import { VorgangListE2EComponent } from '../components/vorgang/vorgang-list.e2e.component'; import { VorgangListE2EComponent } from '../components/vorgang/vorgang-list.e2e.component';
import { MainPage, waitForSpinnerToDisappear } from '../page-objects/main.po'; import { MainPage, waitForSpinnerToDisappear } from '../page-objects/main.po';
import { exist } from '../support/cypress.util'; import { VorgangPage } from '../page-objects/vorgang.po';
import { exist, notExist } from '../support/cypress.util';
import { loginAsSabine } from '../support/user-util'; import { loginAsSabine } from '../support/user-util';
import { E2EAppVerifier } from './app.verifier';
export class E2EAppHelper { export class E2EAppHelper {
private readonly mainPage: MainPage = new MainPage(); private readonly mainPage: MainPage = new MainPage();
private readonly vorgangPage: VorgangPage = new VorgangPage();
private readonly vorgangList: VorgangListE2EComponent = new VorgangListE2EComponent(); private readonly vorgangList: VorgangListE2EComponent = new VorgangListE2EComponent();
private readonly verifier: E2EAppVerifier = new E2EAppVerifier();
private readonly snackBar: SnackBarE2EComponent = new SnackBarE2EComponent();
public loginAsSabine(): void { public loginAsSabine(): void {
loginAsSabine(); loginAsSabine();
this.waitAfterLogin(); this.waitAfterLogin();
...@@ -20,4 +27,27 @@ export class E2EAppHelper { ...@@ -20,4 +27,27 @@ export class E2EAppHelper {
public navigateToDomain(): void { public navigateToDomain(): void {
this.mainPage.getHeader().getLogo().click(); this.mainPage.getHeader().getLogo().click();
} }
public saveAndCloseSnackbar(message: string): void {
this.verifier.verifySnackbar(message);
this.closeSnackbar();
}
public saveAndCloseRevokeableSnackbar(message: string): void {
this.verifier.verifyRevokableSnackbar(message);
this.closeSnackbar();
}
private closeSnackbar(): void {
this.snackBar.getCloseButton().click();
notExist(this.snackBar.getMessage());
waitForSpinnerToDisappear();
}
public revokeAndCloseSnackbar(message: string): void {
this.verifier.verifySnackbar(message);
this.snackBar.getRevokeButton().click();
exist(this.vorgangPage.getProgressBar());
waitForSpinnerToDisappear();
}
} }
import { SnackBarE2EComponent } from '../components/ui/snackbar.e2e.component';
import { contains, exist } from '../support/cypress.util';
export class E2EAppVerifier {
private readonly snackBar: SnackBarE2EComponent = new SnackBarE2EComponent();
public verifyRevokableSnackbar(message: string): void {
this.verifySnackbar(message);
exist(this.snackBar.getRevokeButton());
}
public verifySnackbar(message: string): void {
exist(this.snackBar.getCloseButton());
exist(this.snackBar.getMessage());
contains(this.snackBar.getMessage(), message);
}
}
import { E2EVorgangNavigator } from './vorgang.navigator'; import { VorgangFormularButtonsE2EComponent } from '../../components/vorgang/vorgang-formular-buttons.e2e.components';
import { E2EVorgangVerifier } from './vorgang.verifier'; import { VorgangSubnavigationE2EComponent } from '../../components/vorgang/vorgang-subnavigation';
import { waitForSpinnerToDisappear } from '../../page-objects/main.po';
import { VorgangPage } from '../../page-objects/vorgang.po';
import { exist } from '../../support/cypress.util';
export class E2EVorgangHelper { export class E2EVorgangHelper {
private readonly verifier: E2EVorgangVerifier = new E2EVorgangVerifier(); private readonly page: VorgangPage = new VorgangPage();
private readonly navigator: E2EVorgangNavigator = new E2EVorgangNavigator(); private readonly formularButtons: VorgangFormularButtonsE2EComponent = this.page.getFormularButtons();
private readonly subnavigation: VorgangSubnavigationE2EComponent = this.page.getSubnavigation();
public wiedereroeffnenByButton(): void {
exist(this.formularButtons.getWiedereroeffnenButton());
this.formularButtons.getWiedereroeffnenButton().click();
waitForSpinnerToDisappear();
}
public wiedereroeffnenByIconButton(): void {
exist(this.subnavigation.getWiedereroeffnenIconButton());
this.subnavigation.getWiedereroeffnenIconButton().click();
waitForSpinnerToDisappear();
}
public navigateBack(): void {
this.page.getSubnavigation().getBackButton().click();
}
} }
import { VorgangListE2EComponent } from '../../components/vorgang/vorgang-list.e2e.component'; import { VorgangListE2EComponent } from '../../components/vorgang/vorgang-list.e2e.component';
import { waitForSpinnerToDisappear } from '../../page-objects/main.po'; import { waitForSpinnerToDisappear } from '../../page-objects/main.po';
import { exist } from '../../support/cypress.util'; import { VorgangPage } from '../../page-objects/vorgang.po';
import { contains, exist } from '../../support/cypress.util';
import { E2EAppHelper } from '../app.helper'; import { E2EAppHelper } from '../app.helper';
import { E2EVorgangVerifier } from './vorgang.verifier';
export class E2EVorgangNavigator { export class E2EVorgangNavigator {
private readonly appHelper: E2EAppHelper = new E2EAppHelper(); private readonly appHelper: E2EAppHelper = new E2EAppHelper();
private readonly verifier: E2EVorgangVerifier = new E2EVorgangVerifier(); private readonly vorgangPage: VorgangPage = new VorgangPage();
private readonly vorgangListPage = new VorgangListE2EComponent(); private readonly vorgangListPage = new VorgangListE2EComponent();
public openVorgang(vorgangName: string): void {
this.appHelper.navigateToDomain();
waitForSpinnerToDisappear();
exist(this.vorgangListPage.getRoot());
this.openVorgangDetailByName(vorgangName);
}
public openVorgangDetailByName(vorgangName: string): void { public openVorgangDetailByName(vorgangName: string): void {
this.vorgangListPage.getListItem(vorgangName).getRoot().click(); this.vorgangListPage.getListItem(vorgangName).getRoot().click();
waitForSpinnerToDisappear(); waitForSpinnerToDisappear();
this.verifier.verifyVorgangDetailOpen(vorgangName); exist(this.vorgangPage.getVorgangDetailHeader().getRoot());
contains(this.vorgangPage.getVorgangDetailHeader().getName(), vorgangName);
} }
public openVorgang(vorgangName: string): void { public navigateBack(): void {
this.appHelper.navigateToDomain(); this.vorgangPage.getSubnavigation().getBackButton().click();
waitForSpinnerToDisappear(); waitForSpinnerToDisappear();
exist(this.vorgangListPage.getRoot()); exist(this.vorgangListPage.getRoot());
this.openVorgangDetailByName(vorgangName);
} }
} }
import { VorgangFormularButtonsE2EComponent } from '../../components/vorgang/vorgang-formular-buttons.e2e.components'; import { VorgangFormularButtonsE2EComponent } from '../../components/vorgang/vorgang-formular-buttons.e2e.components';
import { VorgangListE2EComponent } from '../../components/vorgang/vorgang-list.e2e.component';
import { VorgangStatusE2E, vorgangStatusLabelE2E } from '../../model/vorgang';
import { VorgangPage } from '../../page-objects/vorgang.po'; import { VorgangPage } from '../../page-objects/vorgang.po';
import { contains, exist, notExist } from '../../support/cypress.util'; import { exist, haveText, notExist } from '../../support/cypress.util';
export class E2EVorgangVerifier { export class E2EVorgangVerifier {
private readonly vorgangPage: VorgangPage = new VorgangPage(); private readonly vorgangPage: VorgangPage = new VorgangPage();
private readonly vorgangList: VorgangListE2EComponent = new VorgangListE2EComponent();
private readonly formularButtons: VorgangFormularButtonsE2EComponent = new VorgangFormularButtonsE2EComponent(); private readonly formularButtons: VorgangFormularButtonsE2EComponent = new VorgangFormularButtonsE2EComponent();
public verifyVorgangDetailOpen(vorgangName: string): void { public verifyStatus(status: VorgangStatusE2E): void {
exist(this.vorgangPage.getVorgangDetailHeader().getRoot()); haveText(this.vorgangPage.getVorgangDetailHeader().getStatus(), vorgangStatusLabelE2E[status]);
contains(this.vorgangPage.getVorgangDetailHeader().getName(), vorgangName); }
public verifyStatusInList(vorgangName: string, status: VorgangStatusE2E): void {
haveText(this.vorgangList.getListItem(vorgangName).getStatus(), vorgangStatusLabelE2E[status]);
} }
public verifyForwardingButtonExists(): void { public verifyForwardingButtonExists(): void {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment