Skip to content
Snippets Groups Projects
Commit 6696343e authored by Martin's avatar Martin
Browse files

refactor E2E test

parent b264b61a
No related branches found
No related tags found
1 merge request!110refactor E2E test
This commit is part of merge request !110. Comments created here will be created in the context of that merge request.
...@@ -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()); verifier.verifyStatus(VorgangStatusE2E.IN_BEARBEITUNG);
contains(snackbar.getMessage(), VorgangMessagesE2E.WIEDEREROEFFNET);
}); });
it('should close snackBar on close', () => { it('should have new status in list after navigate back', () => {
snackbar.getCloseButton().click(); helper.navigateBack();
notExist(snackbar.getMessage()); verifier.verifyStatusInList(vorgangBeschiedenWiedereroeffnen.name, VorgangStatusE2E.IN_BEARBEITUNG);
});
it('should have status In Bearbeitung', () => {
haveText(vorgangPage.getVorgangDetailHeader().getStatus(), vorgangStatusLabelE2E[VorgangStatusE2E.IN_BEARBEITUNG]);
});
it('back to vorgang list', () => {
vorgangPage.getSubnavigation().getBackButton().click();
waitForSpinnerToDisappear();
exist(vorgangList.getRoot());
});
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]);
});
it('back to vorgang list', () => {
vorgangPage.getSubnavigation().getBackButton().click();
waitForSpinnerToDisappear();
exist(vorgangList.getRoot());
});
it('should have status Beschieden', () => { verifier.verifyStatusInList(vorgangBeschiedenWiedereroeffnenRevoke.name, VorgangStatusE2E.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('wiedereroeffnen', () => {
describe('by button', () => { describe('by button', () => {
it('should have status Abgeschlossen', () => { it('should change status to wiedereroeffnet', () => {
haveText( helper.wiedereroeffnenByButton();
vorgangPage.getVorgangDetailHeader().getStatus(),
vorgangStatusLabelE2E[vorgangAbgeschlossenWiedereroeffnen.status],
);
});
it('should show snackBar', () => {
vorgangFormularButtons.getWiedereroeffnenButton().click();
waitForSpinnerToDisappear();
exist(snackbar.getCloseButton()); verifier.verifyStatus(VorgangStatusE2E.IN_BEARBEITUNG);
contains(snackbar.getMessage(), VorgangMessagesE2E.WIEDEREROEFFNET);
}); });
it('should close snackBar on close', () => { it('should have new status in list after navigate back', () => {
snackbar.getCloseButton().click(); helper.navigateBack();
notExist(snackbar.getMessage()); verifier.verifyStatusInList(vorgangAbgeschlossenWiedereroeffnen.name, VorgangStatusE2E.IN_BEARBEITUNG);
});
it('should have status In Bearbeitung', () => {
haveText(vorgangPage.getVorgangDetailHeader().getStatus(), vorgangStatusLabelE2E[VorgangStatusE2E.IN_BEARBEITUNG]);
});
it('back to vorgang list', () => {
vorgangPage.getSubnavigation().getBackButton().click();
waitForSpinnerToDisappear();
exist(vorgangList.getRoot());
});
it('should have status In Bearbeitung', () => {
haveText(
vorgangList.getListItem(vorgangAbgeschlossenWiedereroeffnen.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(vorgangAbgeschlossenWiedereroeffnenRevoke.name).getRoot().click(); navigator.openVorgang(vorgangAbgeschlossenWiedereroeffnenRevoke.name);
waitForSpinnerToDisappear();
exist(vorgangPage.getVorgangDetailHeader().getRoot()); verifier.verifyStatus(VorgangStatusE2E.ABGESCHLOSSEN);
}); });
describe('by icon-button', () => { describe('by icon-button', () => {
it('should have status Abgeschlossen', () => { it('should have status Beschieden', () => {
haveText( helper.wiedereroeffnenByIconButton();
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());
});
it('should show status Abgeschlossen', () => { appHelper.revokeAndCloseSnackbar(VorgangMessagesE2E.WIEDEREROEFFNET);
notExist(vorgangPage.getProgressBar());
haveText(vorgangPage.getVorgangDetailHeader().getStatus(), vorgangStatusLabelE2E[VorgangStatusE2E.ABGESCHLOSSEN]); verifier.verifyStatus(VorgangStatusE2E.ABGESCHLOSSEN);
}); });
it('back to vorgang list', () => { it('should have reverted status in list after navigate back', () => {
vorgangPage.getSubnavigation().getBackButton().click(); helper.navigateBack();
waitForSpinnerToDisappear();
exist(vorgangList.getRoot()); verifier.verifyStatusInList(vorgangAbgeschlossenWiedereroeffnenRevoke.name, VorgangStatusE2E.ABGESCHLOSSEN);
}); });
it('should have status 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