Skip to content

Commit

Permalink
Merge branch 'main' into SPSH-1059-config-eslint
Browse files Browse the repository at this point in the history
  • Loading branch information
jakobmadp committed Nov 15, 2024
2 parents 33f03c3 + b236990 commit ee6827d
Show file tree
Hide file tree
Showing 5 changed files with 71 additions and 38 deletions.
2 changes: 1 addition & 1 deletion pages/admin/KlasseCreationView.page.ts
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ export class KlasseCreationViewPage{
this.button_Schliessen = page.getByTestId('close-layout-card-button');
this.combobox_Schulstrukturknoten = page.getByTestId('schule-select').locator('.v-input__control');
this.input_Klassenname = page.getByTestId('klassenname-input').locator('input');
this.button_KlasseAnlegen = page.getByTestId('klasse-form-create-button');
this.button_KlasseAnlegen = page.getByTestId('klasse-form-submit-button');
// Bestätigungsseite Klasse
this.text_success = page.getByTestId('klasse-success-text');
this.icon_success = page.locator('.mdi-check-circle');
Expand Down
2 changes: 1 addition & 1 deletion pages/admin/PersonCreationView.page.ts
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ export class PersonCreationViewPage{
this.Input_Kopersnr = page.getByTestId('kopersnr-input').locator('.v-field__input');
this.combobox_Schulstrukturknoten = page.getByTestId('organisation-select').locator('.v-field__input');
this.combobox_Klasse = page.getByTestId('klasse-select').locator('.v-field__input');
this.button_PersonAnlegen = page.getByTestId('person-creation-form-create-button');
this.button_PersonAnlegen = page.getByTestId('person-creation-form-submit-button');
// Bestätigungsseite Klasse
this.text_success = page.getByTestId('person-success-text');
this.icon_success = page.locator('.mdi-check-circle');
Expand Down
2 changes: 1 addition & 1 deletion pages/admin/RolleCreationView.page.ts
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ export class RolleCreationViewPage {
this.input_Rollenname = page
.getByTestId("rollenname-input")
.locator("input");
this.button_RolleAnlegen = page.getByTestId("rolle-form-create-button");
this.button_RolleAnlegen = page.getByTestId("rolle-form-submit-button");
this.button_WeitereRolleAnlegen = page.getByTestId(
"create-another-rolle-button",
);
Expand Down
2 changes: 1 addition & 1 deletion pages/admin/SchuleCreationView.page.ts
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ export class SchuleCreationViewPage{
this.radio_button_Public_Schule = page.getByTestId('schulform-radio-button-0');
this.input_Dienststellennummer = page.getByTestId('dienststellennummer-input').locator('input');
this.input_Schulname = page.getByTestId('schulname-input').locator('input');
this.button_SchuleAnlegen = page.getByTestId('schule-creation-form-create-button');
this.button_SchuleAnlegen = page.getByTestId('schule-creation-form-submit-button');
this.button_WeitereSchuleAnlegen = page.getByTestId('create-another-schule-button');
// Bestätigungsseite
this.button_ZurueckErgebnisliste = page.getByTestId('back-to-list-button');
Expand Down
101 changes: 67 additions & 34 deletions tests/Person.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -211,40 +211,73 @@ test.describe(`Testfälle für die Administration von Personen": Umgebung: ${pro
});
});

test("Einen Benutzer mit der Rolle Schuladmin anlegen als Landesadmin", {tag: [LONG, SHORT, STAGE]}, async ({ page }) => {
const startseite: StartPage = new StartPage(page);
const menue = new MenuPage(page);
const personCreationView = new PersonCreationViewPage(page);

const vorname = "TAuto-PW-V-" + faker.person.firstName();
const nachname = "TAuto-PW-N-" + faker.person.lastName();
const schulstrukturknoten = "(Testschule Schulportal)";

await test.step(`Dialog Person anlegen öffnen`, async () => {
await startseite.card_item_schulportal_administration.click();
await menue.menueItem_BenutzerAnlegen.click();
await expect(personCreationView.text_h2_PersonAnlegen).toHaveText("Neuen Benutzer hinzufügen");
});

await test.step(`Benutzer anlegen`, async () => {
await personCreationView.combobox_Schulstrukturknoten.click();
await page.getByText(schulstrukturknoten).click();
await personCreationView.combobox_Rolle.click();
await page.getByText(schuladminOeffentlichRolle, { exact: true }).click();
await personCreationView.Input_Vorname.fill(vorname);
await personCreationView.Input_Nachname.fill(nachname);
await personCreationView.button_PersonAnlegen.click();
});

await test.step(`Prüfen dass der Benutzer mit der Rolle Landesadmin angelegt wurde`, async () => {
await expect(personCreationView.text_success).toBeVisible();
// Benutzer wird im afterEach-Block gelöscht
// gesteuert wird die Löschung über die Variable username
username.push(await personCreationView.data_Benutzername.innerText());
await expect(personCreationView.data_Rolle).toHaveText(schuladminOeffentlichRolle);
});
});

test("Einen Benutzer mit der Rolle Schuladmin anlegen als Landesadmin und anschließend mit diesem Benutzer anmelden und einen weiteren Benutzer anlegen",
{ tag: [LONG, SHORT, STAGE] }, async ({ page }) => {
const startseite = new StartPage(page);
const menue = new MenuPage(page);
const personCreationView = new PersonCreationViewPage(page);
const login = new LoginPage(page);

const vorname = "TAuto-PW-V-" + faker.person.firstName();
const nachname = "TAuto-PW-N-" + faker.person.lastName();
const schulstrukturknoten = "(Testschule Schulportal)";
let einstiegspasswort = "";

// Step 1: Create a Schuladmin as Landesadmin
await test.step(`Dialog Person anlegen öffnen`, async () => {
await startseite.card_item_schulportal_administration.click();
await menue.menueItem_BenutzerAnlegen.click();
await expect(personCreationView.text_h2_PersonAnlegen).toHaveText("Neuen Benutzer hinzufügen");
});

await test.step(`Benutzer anlegen`, async () => {
await personCreationView.combobox_Schulstrukturknoten.click();
await page.getByText(schulstrukturknoten).click();
await personCreationView.combobox_Rolle.click();
await page.getByText(schuladminOeffentlichRolle, { exact: true }).click();
await personCreationView.Input_Vorname.fill(vorname);
await personCreationView.Input_Nachname.fill(nachname);
await personCreationView.button_PersonAnlegen.click();
});

await test.step(`Prüfen dass der Benutzer mit der Rolle Schuladmin angelegt wurde`, async () => {
await expect(personCreationView.text_success).toBeVisible();
// Save username and password for the created Schuladmin user
username.push(await personCreationView.data_Benutzername.innerText());
einstiegspasswort = await personCreationView.input_EinstiegsPasswort.inputValue(); // Save the password
await expect(personCreationView.data_Rolle).toHaveText(schuladminOeffentlichRolle);
});

// Step 2: Login as the newly created Schuladmin user
await test.step(`Mit dem erstellten Schuladmin-Benutzer anmelden`, async () => {
await login.login(username[0], einstiegspasswort);
await expect(startseite.text_h2_Ueberschrift).toBeVisible();
});

// Step 3: Create another user as Schuladmin
const newVorname = "TAuto-PW-V-" + faker.person.firstName();
const newNachname = "TAuto-PW-N-" + faker.person.lastName();
const newUsername = "newuser-" + faker.internet.userName();
const newKopersnr = faker.string.numeric(7);

await test.step(`Erstellen eines neuen Benutzers durch den Schuladmin`, async () => {
await menue.menueItem_BenutzerAnlegen.click();
await expect(personCreationView.text_h2_PersonAnlegen).toHaveText("Neuen Benutzer hinzufügen");

await personCreationView.combobox_Schulstrukturknoten.click();
await page.getByText(schulstrukturknoten).click();
await personCreationView.Input_Vorname.fill(newVorname);
await personCreationView.Input_Nachname.fill(newNachname);
await personCreationView.Input_Kopersnr.fill(newKopersnr);
await personCreationView.button_PersonAnlegen.click();
await expect(personCreationView.text_success).toBeVisible();

// Save the username for cleanup
username.push(newUsername);
});
}
);

test("Einen Benutzer mit der Rolle Schueler anlegen als Landesadmin", {tag: [LONG, SHORT, STAGE]}, async ({ page }) => {
const startseite: StartPage = new StartPage(page);
const menue = new MenuPage(page);
Expand Down

0 comments on commit ee6827d

Please sign in to comment.