diff --git a/base/api/testHelperPerson.page.ts b/base/api/testHelperPerson.page.ts index 3768e2e..482a272 100644 --- a/base/api/testHelperPerson.page.ts +++ b/base/api/testHelperPerson.page.ts @@ -1,12 +1,14 @@ import { Page, expect } from '@playwright/test'; import { getOrganisationId } from "./testHelperOrganisation.page"; import { createRolle, addSPToRolle, getRolleId } from "./testHelperRolle.page"; +import { getSPId } from "./testHelperServiceprovider.page"; import { UserInfo } from "./testHelper.page"; import { HeaderPage } from '../../pages/Header.page'; import { LoginPage } from '../../pages/LoginView.page'; -import { lehrkraftOeffentlichRolle } from '../rollen'; -import { generateNachname, generateVorname, generateKopersNr } from "../testHelperGenerateTestdataNames"; +import { generateNachname, generateVorname, generateKopersNr, generateRolleName } from "../testHelperGenerateTestdataNames"; import { testschule } from "../organisation"; +import { email, kalender, adressbuch } from "../sp"; +import { typelehrer } from "../rollentypen"; const FRONTEND_URL: string | undefined = process.env.FRONTEND_URL || ""; @@ -50,12 +52,13 @@ export async function createPersonWithUserContext(page: Page, organisationName: return userInfo; } -export async function createRolleAndPersonWithUserContext(page: Page, organisationName: string, rollenArt: string, familienname: string, vorname: string, idSP: string, rolleName: string, koPersNr?: string): Promise { +export async function createRolleAndPersonWithUserContext(page: Page, organisationName: string, rollenArt: string, familienname: string, vorname: string, idSPs: Array, rolleName: string, koPersNr?: string): Promise { // Organisation wird nicht angelegt, da diese zur Zeit nicht gelöscht werden kann // API-Calls machen und Benutzer mit Kontext anlegen const organisationId: string = await getOrganisationId(page, organisationName); const rolleId: string = await createRolle(page, rollenArt, organisationId, rolleName); - await addSPToRolle(page, rolleId, idSP); + + await addSPToRolle(page, rolleId, idSPs); const userInfo: UserInfo = await createPerson(page, familienname, vorname, organisationId, rolleId, koPersNr); return userInfo; } @@ -100,9 +103,8 @@ export async function getPersonId(page: Page, searchString: string): Promise { +export async function addSPToRolle(page: Page, rolleId: string, idSPs: Array): Promise { const response = await page.request.put(FRONTEND_URL + `api/rolle/${rolleId}/serviceProviders`, { data: { - "serviceProviderIds": [idSP], + "serviceProviderIds": idSPs, "version": 1, }, failOnStatusCode: false, maxRetries: 3 }); + expect(response.status()).toBe(201); } diff --git a/base/sp.ts b/base/sp.ts index c99b3a8..db69e16 100644 --- a/base/sp.ts +++ b/base/sp.ts @@ -1,2 +1,4 @@ export const email = "E-Mail"; -export const itslearning = "itslearning"; \ No newline at end of file +export const itslearning = "itslearning"; +export const kalender = "Kalender"; +export const adressbuch = "Adressbuch"; \ No newline at end of file diff --git a/base/testHelperGenerateTestdataNames.ts b/base/testHelperGenerateTestdataNames.ts index 661ceb3..050f4ee 100644 --- a/base/testHelperGenerateTestdataNames.ts +++ b/base/testHelperGenerateTestdataNames.ts @@ -19,4 +19,12 @@ export async function generateKopersNr(){ export async function generateKlassenname(){ return "TAuto-PW-K-12a " + faker.lorem.word({ length: { min: 8, max: 8 }}) + generateRandomString({length: 3,charSetType: CharacterSetType.Alphabetic}); +} + +export async function generateSchulname(){ + return "TAuto-PW-S-" + faker.lorem.word({ length: { min: 8, max: 8 }}) + generateRandomString({length: 3,charSetType: CharacterSetType.Alphabetic}); +} + +export async function generateDienststellenNr(){ + return "0" + faker.number.bigInt({ min: 10000000, max: 100000000 }); } \ No newline at end of file diff --git a/tests/Klasse.spec.ts b/tests/Klasse.spec.ts index a39b8a6..631b651 100644 --- a/tests/Klasse.spec.ts +++ b/tests/Klasse.spec.ts @@ -5,7 +5,6 @@ import { StartPage } from "../pages/StartView.page"; import { MenuPage } from "../pages/MenuBar.page"; import { KlasseCreationViewPage } from "../pages/admin/KlasseCreationView.page"; import { KlasseManagementViewPage } from "../pages/admin/KlasseManagementView.page"; -import { faker } from "@faker-js/faker/locale/de"; import { HeaderPage } from "../pages/Header.page"; import { LONG, SHORT, STAGE, BROWSER } from "../base/tags"; import { deleteKlasseByName, deletePersonenBySearchStrings, deleteRolleById } from "../base/testHelperDeleteTestdata.ts"; @@ -16,6 +15,7 @@ import { addSystemrechtToRolle } from "../base/api/testHelperRolle.page.ts"; import { getSPId } from "../base/api/testHelperServiceprovider.page.ts"; import { KlasseDetailsViewPage } from "../pages/admin/KlasseDetailsView.page.ts"; import { UserInfo } from "../base/api/testHelper.page.ts"; +import { getOrganisationId } from "../base/api/testHelperOrganisation.page.ts"; const PW: string | undefined = process.env.PW; const ADMIN: string | undefined = process.env.USER; @@ -207,7 +207,7 @@ test.describe(`Testfälle für die Administration von Klassen: Umgebung: ${proce const adminRolle = await generateRolleName(); const adminRollenart = 'SYSADMIN'; const adminOrganisation = landSH; - const adminIdSP = await getSPId(page, 'Schulportal-Administration'); + const adminIdSPs: Array = [await getSPId(page, 'Schulportal-Administration')]; userInfoAdmin = await createRolleAndPersonWithUserContext( page, @@ -215,7 +215,7 @@ test.describe(`Testfälle für die Administration von Klassen: Umgebung: ${proce adminRollenart, addminVorname, adminNachname, - adminIdSP, + adminIdSPs, adminRolle ); await addSystemrechtToRolle(page, userInfoAdmin.rolleId, 'ROLLEN_VERWALTEN'); @@ -281,7 +281,7 @@ test.describe(`Testfälle für die Administration von Klassen: Umgebung: ${proce const adminRolle = await generateRolleName(); const adminRollenart = 'LEIT'; const adminOrganisation = testschule; - const adminIdSP = await getSPId(page, 'Schulportal-Administration'); + const adminIdSPs: Array = [await getSPId(page, 'Schulportal-Administration')];; userInfoAdmin = await createRolleAndPersonWithUserContext( page, @@ -289,7 +289,7 @@ test.describe(`Testfälle für die Administration von Klassen: Umgebung: ${proce adminRollenart, addminVorname, adminNachname, - adminIdSP, + adminIdSPs, adminRolle ); await addSystemrechtToRolle(page, userInfoAdmin.rolleId, 'PERSONEN_VERWALTEN'); @@ -311,13 +311,14 @@ test.describe(`Testfälle für die Administration von Klassen: Umgebung: ${proce await menue.menueItem_KlasseAnlegen.click(); await expect(klasseCreationView.text_h2_KlasseAnlegen).toHaveText('Neue Klasse hinzufügen'); + await expect(klasseCreationView.combobox_Schulstrukturknoten).toContainText(testschule); await klasseCreationView.input_Klassenname.fill(klassenname); await klasseCreationView.button_KlasseAnlegen.click(); await expect(klasseCreationView.text_success).toBeVisible(); }); await test.step(`Klasse bearbeiten als Schuladmin`, async () => { - await menue.menueItem_AlleKlassenAnzeigen.click(); + await page.goto('/admin/klassen'); await klasseManagementView.combobox_Filter_Schule.fill(schulname); await page.getByText(`${schulname}`, { exact: true }).click(); await klasseManagementView.combobox_Filter_Klasse.fill(klassenname); diff --git a/tests/Person.spec.ts b/tests/Person.spec.ts index 84d79d0..20450bf 100644 --- a/tests/Person.spec.ts +++ b/tests/Person.spec.ts @@ -7,7 +7,6 @@ import { PersonCreationViewPage } from "../pages/admin/PersonCreationView.page"; import { PersonManagementViewPage } from "../pages/admin/PersonManagementView.page"; import { PersonDetailsViewPage } from "../pages/admin/PersonDetailsView.page"; import { HeaderPage } from "../pages/Header.page"; -import { faker } from "@faker-js/faker/locale/de"; import { createRolleAndPersonWithUserContext } from "../base/api/testHelperPerson.page"; import { getSPId } from "../base/api/testHelperServiceprovider.page"; import { UserInfo } from "../base/api/testHelper.page"; @@ -15,7 +14,7 @@ import { addSystemrechtToRolle } from "../base/api/testHelperRolle.page"; import { LONG, SHORT, STAGE, BROWSER } from "../base/tags"; import { deletePersonenBySearchStrings, deleteRolleById, deleteRolleByName } from "../base/testHelperDeleteTestdata.ts"; import { landesadminRolle, schuelerRolle, schuladminOeffentlichRolle } from "../base/rollen.ts"; -import { generateNachname, generateVorname, generateRolleName } from "../base/testHelperGenerateTestdataNames.ts"; +import { generateNachname, generateVorname, generateRolleName, generateKopersNr } from "../base/testHelperGenerateTestdataNames.ts"; import { testschule665, testschule } from "../base/organisation.ts"; import { gotoTargetURL } from "../base/testHelperUtils.ts"; @@ -97,7 +96,7 @@ test.describe(`Testfälle für die Administration von Personen": Umgebung: ${pro const rolle = "Lehrkraft"; const vorname = await generateVorname(); const nachname = await generateNachname(); - const kopersnr = faker.string.numeric(7); + const kopersnr = await generateKopersNr() const schulstrukturknoten = "Testschule Schulportal"; let einstiegspasswort = ""; @@ -146,8 +145,8 @@ test.describe(`Testfälle für die Administration von Personen": Umgebung: ${pro 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 vorname = await generateVorname(); + const nachname = await generateNachname(); const schulstrukturknoten = "Öffentliche Schulen Land Schleswig-Holstein"; await test.step(`Dialog Person anlegen öffnen`, async () => { @@ -182,9 +181,9 @@ test.describe(`Testfälle für die Administration von Personen": Umgebung: ${pro const personCreationView = new PersonCreationViewPage(page); const rolle = "LiV"; - const vorname = "TAuto-PW-V-" + faker.person.firstName(); - const nachname = "TAuto-PW-N-" + faker.person.lastName(); - const kopersnr = faker.string.numeric(7); + const vorname = await generateVorname(); + const nachname = await generateNachname(); + const kopersnr = await generateKopersNr(); const schulstrukturknoten = "Testschule Schulportal"; await test.step(`Dialog Person anlegen öffnen`, async () => { @@ -222,16 +221,16 @@ test.describe(`Testfälle für die Administration von Personen": Umgebung: ${pro const header = new HeaderPage(page); const landing = new LandingPage(page); - const vorname = "TAuto-PW-V-" + faker.person.firstName(); - const nachname = "TAuto-PW-N-" + faker.person.lastName(); + const vorname = await generateVorname(); + const nachname = await generateNachname(); const schulstrukturknoten = "Testschule Schulportal"; const rolle = "Lehrkraft"; let userInfo: UserInfo; // Step 1: Create a Schuladmin as Landesadmin and login as the newly created Schuladmin user await test.step(`Schuladmin anlegen und mit diesem anmelden`, async () => { - const idSP = await getSPId(page, 'Schulportal-Administration'); - userInfo = await createRolleAndPersonWithUserContext(page, schulstrukturknoten, 'LEIT', nachname, vorname, idSP, await generateRolleName()); + const idSPs: Array = [await getSPId(page, 'Schulportal-Administration')]; + userInfo = await createRolleAndPersonWithUserContext(page, schulstrukturknoten, 'LEIT', nachname, vorname, idSPs, await generateRolleName()); await addSystemrechtToRolle(page, userInfo.rolleId, 'PERSONEN_VERWALTEN'); await addSystemrechtToRolle(page, userInfo.rolleId, 'PERSONEN_ANLEGEN'); @@ -247,9 +246,9 @@ test.describe(`Testfälle für die Administration von Personen": Umgebung: ${pro // Step 2: Create another user as Schuladmin await test.step(`Schuladmin anlegen und mit diesem anmelden`, async () => { - const newVorname = "TAuto-PW-V-" + faker.person.firstName(); - const newNachname = "TAuto-PW-N-" + faker.person.lastName(); - const newKopersnr = faker.string.numeric(7); + const newVorname = await generateVorname(); + const newNachname = await generateNachname(); + const newKopersnr = await generateKopersNr(); await startseite.card_item_schulportal_administration.click(); await menue.menueItem_BenutzerAnlegen.click(); @@ -274,8 +273,8 @@ test.describe(`Testfälle für die Administration von Personen": Umgebung: ${pro 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 vorname = await generateVorname(); + const nachname = await generateNachname(); const schulstrukturknoten = testschule; const klasse = "Playwright3a"; @@ -406,9 +405,9 @@ test.describe(`Testfälle für die Administration von Personen": Umgebung: ${pro const personCreationView = new PersonCreationViewPage(page); const rolle = "Lehrkraft"; - const vorname = "TAuto-PW-V-" + faker.person.firstName(); - const nachname = "TAuto-PW-N-" + faker.person.lastName(); - const kopersnr = faker.string.numeric(7); + const vorname = await generateVorname(); + const nachname = await generateNachname(); + const kopersnr = await generateKopersNr(); const schulstrukturknoten = "Testschule Schulportal"; await test.step(`Benutzer Lehrkraft anlegen`, async () => { @@ -488,9 +487,9 @@ test.describe(`Testfälle für die Administration von Personen": Umgebung: ${pro test("Eine Lehrkraft anlegen in der Rolle Landesadmin und die Bestätigungsseite vollständig prüfen", {tag: [LONG, SHORT, STAGE]}, async ({ page }) => { const personCreationView = new PersonCreationViewPage(page); const rolle = "Lehrkraft"; - const vorname = "TAuto-PW-V-" + faker.person.firstName(); - const nachname = "TAuto-PW-N-" + faker.person.lastName(); - const kopersnr = faker.string.numeric(7); + const vorname = await generateVorname(); + const nachname = await generateNachname(); + const kopersnr = await generateKopersNr();; const schulstrukturknoten = "Testschule Schulportal"; const dienststellenNr = "1111111"; @@ -543,8 +542,8 @@ test.describe(`Testfälle für die Administration von Personen": Umgebung: ${pro let userInfo: UserInfo; await test.step(`Testdaten: Landesadmin anlegen und mit diesem anmelden`, async () => { - const idSP = await getSPId(page, 'Schulportal-Administration'); - userInfo = await createRolleAndPersonWithUserContext(page, 'Land Schleswig-Holstein', 'SYSADMIN', 'TAuto-PW-B-Master', 'TAuto-PW-B-Hans', idSP, await generateRolleName()); + const idSPs: Array = [await getSPId(page, 'Schulportal-Administration')]; + userInfo = await createRolleAndPersonWithUserContext(page, 'Land Schleswig-Holstein', 'SYSADMIN', await generateNachname(), await generateVorname(), idSPs, await generateRolleName()); await addSystemrechtToRolle(page, userInfo.rolleId, 'ROLLEN_VERWALTEN'); await addSystemrechtToRolle(page, userInfo.rolleId, 'PERSONEN_SOFORT_LOESCHEN'); await addSystemrechtToRolle(page, userInfo.rolleId, 'PERSONEN_VERWALTEN'); @@ -567,19 +566,19 @@ test.describe(`Testfälle für die Administration von Personen": Umgebung: ${pro // Testdaten const schulstrukturknoten = "Testschule Schulportal"; const dienststellenNr = "1111111"; - const vorname1 = "TAuto-PW-VA-" + faker.person.firstName(); - const nachname1 = "TAuto-PW-NA-" + faker.person.lastName(); + const vorname1 = await generateVorname(); + const nachname1 = await generateNachname(); const klassenname = "Playwright3a"; const rolle2 = "Lehrkraft"; - const vorname2 = "TAuto-PW-VB-" + faker.person.firstName(); - const nachname2 = "TAuto-PW-NB-" + faker.person.lastName(); - const kopersnr2 = faker.string.numeric(7); + const vorname2 = await generateVorname(); + const nachname2 = await generateNachname(); + const kopersnr2 = await generateKopersNr(); const rolle3 = "Lehrkraft"; - const vorname3 = "TAuto-PW-VC-" + faker.person.firstName(); - const nachname3 = "TAuto-PW-NC-" + faker.person.lastName(); - const kopersnr3 = faker.string.numeric(7); + const vorname3 = await generateVorname(); + const nachname3 = await generateNachname(); + const kopersnr3 = await generateKopersNr(); await test.step(`Dialog Person anlegen öffnen`, async () => { await page.goto('/' + 'admin/personen/new'); @@ -708,10 +707,10 @@ test.describe(`Testfälle für die Administration von Personen": Umgebung: ${pro const nachname = await generateNachname(); const rolle = await generateRolleName(); const berechtigung = 'SYSADMIN'; - const idSP = await getSPId(page, 'Schulportal-Administration'); + const idSPs: Array = [await getSPId(page, 'Schulportal-Administration')]; await test.step(`Neuen Benutzer über die api anlegen`, async () => { - await createRolleAndPersonWithUserContext(page, 'Land Schleswig-Holstein', berechtigung, vorname, nachname, idSP, rolle); + await createRolleAndPersonWithUserContext(page, 'Land Schleswig-Holstein', berechtigung, vorname, nachname, idSPs, rolle); roleName.push(rolle); }) diff --git a/tests/PersonBearbeiten.spec.ts b/tests/PersonBearbeiten.spec.ts index fd0366e..861909f 100644 --- a/tests/PersonBearbeiten.spec.ts +++ b/tests/PersonBearbeiten.spec.ts @@ -5,7 +5,6 @@ import { StartPage } from "../pages/StartView.page.ts"; import { PersonManagementViewPage } from "../pages/admin/PersonManagementView.page.ts"; import { PersonDetailsViewPage } from "../pages/admin/PersonDetailsView.page.ts"; import { HeaderPage } from "../pages/Header.page.ts"; -import { faker } from "@faker-js/faker/locale/de"; import { createRolleAndPersonWithUserContext } from "../base/api/testHelperPerson.page.ts"; import { getSPId } from "../base/api/testHelperServiceprovider.page.ts"; import { UserInfo } from "../base/api/testHelper.page.ts"; @@ -15,7 +14,7 @@ import { deletePersonenBySearchStrings, deleteRolleById } from "../base/testHelp import { typelehrer , typeSchueler} from "../base/rollentypen.ts"; import { testschule } from "../base/organisation.ts"; import { email , itslearning} from "../base/sp.ts"; -import { generateNachname, generateVorname, generateRolleName} from "../base/testHelperGenerateTestdataNames.ts"; +import { generateNachname, generateVorname, generateRolleName, generateKopersNr } from "../base/testHelperGenerateTestdataNames.ts"; import { generateDateFuture, generateDateToday, gotoTargetURL } from "../base/testHelperUtils.ts"; const PW = process.env.PW; @@ -79,34 +78,34 @@ test.describe(`Testfälle für die Administration von Personen": Umgebung: ${pro const login: LoginPage = new LoginPage(page); const startseite: StartPage = new StartPage(page); - const addminVorname = "TAuto-PW-V-" + faker.person.firstName(); - const adminNachname = "TAuto-PW-N-" + faker.person.lastName(); + const addminVorname = await generateVorname(); + const adminNachname = await generateNachname(); const adminRolle = await generateRolleName(); const adminRollenart = 'LEIT'; const adminOrganisation = 'Testschule-PW665'; - const adminIdSP = await getSPId(page, 'Schulportal-Administration'); + const adminIdSPs: Array = [await getSPId(page, 'Schulportal-Administration')]; let userInfoAdmin: UserInfo; - const lehrerVorname = "TAuto-PW-V-" + faker.person.firstName(); - const lehrerNachname = "TAuto-PW-N-" + faker.person.lastName(); + const lehrerVorname = await generateVorname(); + const lehrerNachname = await generateNachname(); const lehrerRolle = await generateRolleName(); const lehrerRollenart = 'LEHR'; const lehrerOrganisation = 'Testschule-PW665'; - const lehrerIdSP = await getSPId(page, 'E-Mail'); + let userInfoLehrer: UserInfo; let lehrerBenutzername = ''; const rolle = 'LiV'; - const kopersNr = faker.number.bigInt({min: 100000, max: 900000}).toString(); + const kopersNr = await generateKopersNr(); await test.step(`Einen Schuladmin und einen zu bearbeitenden Lehrer mit je einer einer Schulzuordnung(Schule ist an einer Position > 25 in der DB) über die api anlegen und mit diesem Schuladmin anmelden`, async () => { // Schuladmin - userInfoAdmin = await createRolleAndPersonWithUserContext(page, adminOrganisation, adminRollenart, addminVorname, adminNachname, adminIdSP, adminRolle); + userInfoAdmin = await createRolleAndPersonWithUserContext(page, adminOrganisation, adminRollenart, addminVorname, adminNachname, adminIdSPs, adminRolle); await addSystemrechtToRolle(page, userInfoAdmin.rolleId, 'PERSONEN_VERWALTEN'); username.push(userInfoAdmin.username); rolleId.push(userInfoAdmin.rolleId); // Lehrer - userInfoLehrer = await createRolleAndPersonWithUserContext(page, lehrerOrganisation, lehrerRollenart, lehrerVorname, lehrerNachname, lehrerIdSP, lehrerRolle); + userInfoLehrer = await createRolleAndPersonWithUserContext(page, lehrerOrganisation, lehrerRollenart, lehrerVorname, lehrerNachname, [await getSPId(page, 'E-Mail')], lehrerRolle); username.push(userInfoLehrer.username); rolleId.push(userInfoLehrer.rolleId); lehrerBenutzername = userInfoLehrer.username; @@ -184,7 +183,7 @@ test.describe(`Testfälle für die Administration von Personen": Umgebung: ${pro const sperrDatumAb = await generateDateToday() // Konkrete Testdaten für diesen Testfall await test.step(`Testdaten: Lehrer mit einer Rolle(LEHR) und SP(email) über die api anlegen ${ADMIN}`, async () => { - userInfoLehrer = await createRolleAndPersonWithUserContext(page, testschule, typelehrer, await generateNachname(), await generateVorname(), await getSPId(page, email), await generateRolleName()); + userInfoLehrer = await createRolleAndPersonWithUserContext(page, testschule, typelehrer, await generateNachname(), await generateVorname(), [await getSPId(page, email)], await generateRolleName()); username.push(userInfoLehrer.username); rolleId.push(userInfoLehrer.rolleId); }) @@ -210,7 +209,7 @@ test.describe(`Testfälle für die Administration von Personen": Umgebung: ${pro const sperrDatumBis = await generateDateFuture(5, 2); // Konkrete Testdaten für diesen Testfall await test.step(`Testdaten: Lehrer mit einer Rolle(LEHR) und SP(email) über die api anlegen ${ADMIN}`, async () => { - userInfoLehrer = await createRolleAndPersonWithUserContext(page, testschule, typelehrer, await generateNachname(), await generateVorname(), await getSPId(page, email), await generateRolleName()); + userInfoLehrer = await createRolleAndPersonWithUserContext(page, testschule, typelehrer, await generateNachname(), await generateVorname(), [await getSPId(page, email)], await generateRolleName()); username.push(userInfoLehrer.username); rolleId.push(userInfoLehrer.rolleId); }) @@ -235,7 +234,7 @@ test.describe(`Testfälle für die Administration von Personen": Umgebung: ${pro let userInfoLehrer: UserInfo; await test.step(`Testdaten: Schüler mit einer Rolle(LERN) über die api anlegen ${ADMIN}`, async () => { - userInfoLehrer = await createRolleAndPersonWithUserContext(page, testschule, typeSchueler, await generateNachname(), await generateVorname(), await getSPId(page, itslearning), await generateRolleName()); + userInfoLehrer = await createRolleAndPersonWithUserContext(page, testschule, typeSchueler, await generateNachname(), await generateVorname(), [await getSPId(page, itslearning)], await generateRolleName()); username.push(userInfoLehrer.username); rolleId.push(userInfoLehrer.rolleId); }) @@ -268,7 +267,7 @@ test.describe(`Testfälle für die Administration von Personen": Umgebung: ${pro let userInfoLehrer: UserInfo; await test.step(`Testdaten: Lehrer mit einer Rolle(LEHR) über die api anlegen ${ADMIN}`, async () => { - userInfoLehrer = await createRolleAndPersonWithUserContext(page, testschule, typelehrer, await generateNachname(), await generateVorname(), await getSPId(page, email), await generateRolleName()); + userInfoLehrer = await createRolleAndPersonWithUserContext(page, testschule, typelehrer, await generateNachname(), await generateVorname(), [await getSPId(page, email)], await generateRolleName()); username.push(userInfoLehrer.username); rolleId.push(userInfoLehrer.rolleId); }) @@ -288,15 +287,15 @@ test.describe(`Testfälle für die Administration von Personen": Umgebung: ${pro }) test("Gesamtübersicht für einen Benutzer als Schuladmin öffnen und 2FA Status prüfen dass kein Token eingerichtet ist", {tag: [LONG]}, async ({ page }) => { - const addminVorname = "TAuto-PW-V-" + faker.person.firstName(); - const adminNachname = "TAuto-PW-N-" + faker.person.lastName(); + const addminVorname = await generateVorname(); + const adminNachname = await generateNachname(); const adminRollenart = 'LEIT'; const adminOrganisation = 'Testschule-PW665'; - const adminIdSP = await getSPId(page, 'Schulportal-Administration'); + const adminIdSPs: Array = [await getSPId(page, 'Schulportal-Administration')]; let userInfoAdmin: UserInfo; await test.step(`Testdaten: Schuladmin mit einer Rolle(LEIT) über die api anlegen ${ADMIN}`, async () => { - userInfoAdmin = await createRolleAndPersonWithUserContext(page, adminOrganisation, adminRollenart, addminVorname, adminNachname, adminIdSP, await generateRolleName()); + userInfoAdmin = await createRolleAndPersonWithUserContext(page, adminOrganisation, adminRollenart, addminVorname, adminNachname, [await getSPId(page, 'Schulportal-Administration')], await generateRolleName()); await addSystemrechtToRolle(page, userInfoAdmin.rolleId, 'PERSONEN_VERWALTEN'); username.push(userInfoAdmin.username); rolleId.push(userInfoAdmin.rolleId); @@ -317,16 +316,15 @@ test.describe(`Testfälle für die Administration von Personen": Umgebung: ${pro }) test("Gesamtübersicht für einen Benutzer als Landesadmin öffnen, 2FA Token einrichten und 2FA Status prüfen dass ein Token eingerichtet ist", {tag: [LONG]}, async ({ page }) => { - const addminVorname = "TAuto-PW-V-" + faker.person.firstName(); - const adminNachname = "TAuto-PW-N-" + faker.person.lastName(); + const addminVorname = await generateVorname(); + const adminNachname = await generateNachname(); const organisation = 'Land Schleswig-Holstein'; const rollenart = 'SYSADMIN' - const adminIdSP = await getSPId(page, 'Schulportal-Administration'); let userInfoAdmin: UserInfo; await test.step(`Testdaten: Landesadmin mit einer Rolle(SYSADMIN) über die api anlegen ${ADMIN}`, async () => { - userInfoAdmin = await createRolleAndPersonWithUserContext(page, organisation, rollenart, addminVorname, adminNachname, adminIdSP, await generateRolleName()); + userInfoAdmin = await createRolleAndPersonWithUserContext(page, organisation, rollenart, addminVorname, adminNachname, [await getSPId(page, 'Schulportal-Administration')], await generateRolleName()); await addSystemrechtToRolle(page, userInfoAdmin.rolleId, 'ROLLEN_VERWALTEN'); await addSystemrechtToRolle(page, userInfoAdmin.rolleId, 'PERSONEN_SOFORT_LOESCHEN'); await addSystemrechtToRolle(page, userInfoAdmin.rolleId, 'PERSONEN_VERWALTEN'); @@ -361,11 +359,10 @@ test.describe(`Testfälle für die Administration von Personen": Umgebung: ${pro test("Gesamtübersicht für einen Benutzer als Schuladmin öffnen, 2FA Token einrichten und 2FA Status prüfen dass ein Token eingerichtet ist", {tag: [LONG]}, async ({ page }) => { const adminRollenart = 'LEIT'; const adminOrganisation = 'Testschule-PW665'; - const adminIdSP = await getSPId(page, 'Schulportal-Administration'); let userInfoAdmin: UserInfo; await test.step(`Testdaten: Schuladmin mit einer Rolle(LEIT) über die api anlegen ${ADMIN}`, async () => { - userInfoAdmin = await createRolleAndPersonWithUserContext(page, adminOrganisation, adminRollenart, await generateNachname(), await generateVorname(), adminIdSP, await generateRolleName()); + userInfoAdmin = await createRolleAndPersonWithUserContext(page, adminOrganisation, adminRollenart, await generateNachname(), await generateVorname(), [await getSPId(page, 'Schulportal-Administration')], await generateRolleName()); await addSystemrechtToRolle(page, userInfoAdmin.rolleId, 'PERSONEN_VERWALTEN'); username.push(userInfoAdmin.username); rolleId.push(userInfoAdmin.rolleId); @@ -394,7 +391,7 @@ test.describe(`Testfälle für die Administration von Personen": Umgebung: ${pro let userInfoLehrer: UserInfo; await test.step(`Testdaten: Lehrer mit einer Rolle(LEHR) über die api anlegen ${ADMIN}`, async () => { - userInfoLehrer = await createRolleAndPersonWithUserContext(page, testschule, typelehrer, await generateNachname(), await generateVorname(), await getSPId(page, email), await generateRolleName()); + userInfoLehrer = await createRolleAndPersonWithUserContext(page, testschule, typelehrer, await generateNachname(), await generateVorname(), [await getSPId(page, email)], await generateRolleName()); username.push(userInfoLehrer.username); rolleId.push(userInfoLehrer.rolleId); }) diff --git a/tests/Profile.spec.ts b/tests/Profile.spec.ts index bc6fe09..07788a4 100644 --- a/tests/Profile.spec.ts +++ b/tests/Profile.spec.ts @@ -2,7 +2,6 @@ import { test, expect } from "@playwright/test"; import { LandingPage } from "../pages/LandingView.page"; import { LoginPage } from "../pages/LoginView.page"; import { StartPage } from "../pages/StartView.page"; -import { faker } from "@faker-js/faker/locale/de"; import { HeaderPage } from "../pages/Header.page"; import { ProfilePage } from "../pages/ProfileView.page"; import { getSPId } from "../base/api/testHelperServiceprovider.page"; @@ -78,8 +77,8 @@ test.describe(`Testfälle für das eigene Profil anzeigen: Umgebung: ${process.e const rollenart = 'SYSADMIN' await test.step(`Landesadmin via api anlegen und mit diesem anmelden`, async () => { - const idSP = await getSPId(page, 'Schulportal-Administration'); - const userInfo: UserInfo = await createRolleAndPersonWithUserContext(page, organisation, rollenart, nachname, vorname, idSP, rollenname); + const idSPs: Array = [await getSPId(page, 'Schulportal-Administration')]; + const userInfo: UserInfo = await createRolleAndPersonWithUserContext(page, organisation, rollenart, nachname, vorname, idSPs, rollenname); roleId.push(userInfo.rolleId); username.push(userInfo.username); @@ -146,8 +145,8 @@ test.describe(`Testfälle für das eigene Profil anzeigen: Umgebung: ${process.e const rollenart = 'LEHR'; await test.step(`Lehrer via api anlegen und mit diesem anmelden`, async () => { - const idSP = await getSPId(page, 'E-Mail'); - const userInfo: UserInfo = await createRolleAndPersonWithUserContext(page, organisation, rollenart, nachname, vorname, idSP, rollenname); + const idSPs: Array = [await getSPId(page, 'E-Mail')]; + const userInfo: UserInfo = await createRolleAndPersonWithUserContext(page, organisation, rollenart, nachname, vorname, idSPs, rollenname); roleId.push(userInfo.rolleId); username.push(userInfo.username); @@ -204,8 +203,8 @@ test.describe(`Testfälle für das eigene Profil anzeigen: Umgebung: ${process.e const rollenart = 'LERN'; await test.step(`Lehrer via api anlegen und mit diesem anmelden`, async () => { - const idSP = await getSPId(page, 'itslearning'); - const userInfo: UserInfo = await createRolleAndPersonWithUserContext(page, organisation, rollenart, nachname, vorname, idSP, rollenname); + const idSPs: Array = [await getSPId(page, 'itslearning')]; + const userInfo: UserInfo = await createRolleAndPersonWithUserContext(page, organisation, rollenart, nachname, vorname, idSPs, rollenname); roleId.push(userInfo.rolleId); username.push(userInfo.username); @@ -261,8 +260,8 @@ test.describe(`Testfälle für das eigene Profil anzeigen: Umgebung: ${process.e const rollenart = 'LEIT' await test.step(`Lehrer via api anlegen und mit diesem anmelden`, async () => { - const idSP = await getSPId(page, 'Schulportal-Administration'); - const userInfo: UserInfo = await createRolleAndPersonWithUserContext(page, organisation, rollenart, nachname, vorname, idSP, rollenname); + const idSPs: Array = [await getSPId(page, 'Schulportal-Administration')]; + const userInfo: UserInfo = await createRolleAndPersonWithUserContext(page, organisation, rollenart, nachname, vorname, idSPs, rollenname); roleId.push(userInfo.rolleId); username.push(userInfo.username); @@ -322,8 +321,8 @@ test.describe(`Testfälle für das eigene Profil anzeigen: Umgebung: ${process.e const rollenart = 'LEHR'; await test.step(`Lehrer via api anlegen und mit diesem anmelden`, async () => { - const idSP = await getSPId(page, 'Schulportal-Administration'); - const userInfo: UserInfo = await createRolleAndPersonWithUserContext(page, organisation1, rollenart, nachname, vorname, idSP, rollenname); + const idSPs: Array = [await getSPId(page, 'Schulportal-Administration')]; + const userInfo: UserInfo = await createRolleAndPersonWithUserContext(page, organisation1, rollenart, nachname, vorname, idSPs, rollenname); personId = userInfo.personId; roleId.push(userInfo.rolleId); username.push(userInfo.username); @@ -419,8 +418,8 @@ test.describe(`Testfälle für das eigene Profil anzeigen: Umgebung: ${process.e const rollenart = 'LERN'; await test.step(`Lehrer via api anlegen und mit diesem anmelden`, async () => { - const idSP = await getSPId(page, 'itslearning'); - const userInfo: UserInfo = await createRolleAndPersonWithUserContext(page, organisation, rollenart, await generateNachname(), await generateVorname(), idSP, await generateRolleName()); + const idSPs: Array = [await getSPId(page, 'itslearning')]; + const userInfo: UserInfo = await createRolleAndPersonWithUserContext(page, organisation, rollenart, await generateNachname(), await generateVorname(), idSPs, await generateRolleName()); roleId.push(userInfo.rolleId); username.push(userInfo.username); diff --git a/tests/Rolle.spec.ts b/tests/Rolle.spec.ts index b10af93..006de02 100644 --- a/tests/Rolle.spec.ts +++ b/tests/Rolle.spec.ts @@ -2,13 +2,14 @@ import { expect, test } from "@playwright/test"; import { StartPage } from "../pages/StartView.page"; import { MenuPage } from "../pages/MenuBar.page"; import { RolleCreationViewPage } from "../pages/admin/RolleCreationView.page"; -import { faker } from "@faker-js/faker/locale/de"; import { HeaderPage } from "../pages/Header.page"; import { getRolleId, deleteRolle } from "../base/api/testHelperRolle.page"; import { RolleCreationConfirmPage } from "../pages/admin/RolleCreationConfirm.page"; import FromAnywhere from "../pages/FromAnywhere"; import { LONG, SHORT, STAGE } from "../base/tags"; import { deleteRolleByName } from "../base/testHelperDeleteTestdata"; +import { generate } from "generate-password-ts"; +import { generateRolleName } from "../base/testHelperGenerateTestdataNames"; let startseite: StartPage; let loggedIn = false; @@ -46,15 +47,8 @@ test.describe(`Testfälle für die Administration von Rollen: Umgebung: ${proces test("2 Rollen nacheinander anlegen mit Rollenarten LERN und LEHR als Landesadmin", {tag: [LONG, SHORT, STAGE]}, async ({ page, }) => { - const zufallsnummer = faker.number.bigInt({ min: 1000, max: 9000 }); - const rollenname1 = - "TAuto-PW-R1-" + - faker.lorem.word({ length: { min: 8, max: 12 } }) + - zufallsnummer; - const rollenname2 = - "TAuto-PW-R2-" + - faker.lorem.word({ length: { min: 8, max: 12 } }) + - zufallsnummer; + const rollenname1 = await generateRolleName(); + const rollenname2 = await generateRolleName(); const schulstrukturknoten1 = "Land Schleswig-Holstein"; const schulstrukturknoten2 = "Ersatzschulen Land Schleswig-Holstein";; const rollenart1 = "Lern"; @@ -131,15 +125,12 @@ test.describe(`Testfälle für die Administration von Rollen: Umgebung: ${proces await expect(rolleManagement.table_header_Rollenname).toBeVisible(); await expect(rolleManagement.table_header_Rollenart).toBeVisible(); await expect(rolleManagement.table_header_Merkmale).toBeVisible(); - await expect( - rolleManagement.table_header_Administrationsebene, - ).toBeVisible(); + await expect(rolleManagement.table_header_Administrationsebene).toBeVisible(); }); }); test("Eine Rolle anlegen und die Bestätigungsseite vollständig prüfen als Landesadmin", {tag: [LONG, SHORT, STAGE]}, async ( ) => { - const rollenname = - "TAuto-PW-R-" + faker.lorem.word({ length: { min: 8, max: 12 } }); + const rollenname = await generateRolleName() const schulstrukturknoten = "Land Schleswig-Holstein"; const rollenart = "Leit"; const merkmal = "KoPers.-Nr. ist Pflichtangabe"; diff --git a/tests/Schule.spec.ts b/tests/Schule.spec.ts index 14122ab..9c2ad54 100644 --- a/tests/Schule.spec.ts +++ b/tests/Schule.spec.ts @@ -5,7 +5,6 @@ import { StartPage } from "../pages/StartView.page"; import { MenuPage } from "../pages/MenuBar.page"; import { SchuleCreationViewPage } from "../pages/admin/SchuleCreationView.page"; import { SchuleManagementViewPage } from "../pages/admin/SchuleManagementView.page"; -import { faker } from "@faker-js/faker/locale/de"; import { HeaderPage } from "../pages/Header.page"; import { createRolleAndPersonWithUserContext } from "../base/api/testHelperPerson.page"; import { getSPId } from "../base/api/testHelperServiceprovider.page"; @@ -14,7 +13,7 @@ import { addSystemrechtToRolle } from "../base/api/testHelperRolle.page"; import { FooterDataTablePage } from "../pages/FooterDataTable.page"; import { LONG, SHORT, STAGE, BROWSER } from "../base/tags"; import { deletePersonById, deleteRolleById } from "../base/testHelperDeleteTestdata"; -import { generateRolleName } from "../base/testHelperGenerateTestdataNames"; +import { generateRolleName, generateSchulname, generateDienststellenNr, generateNachname, generateVorname } from "../base/testHelperGenerateTestdataNames"; const PW: string | undefined = process.env.PW; const ADMIN: string | undefined = process.env.USER; @@ -77,11 +76,10 @@ test.describe(`Testfälle für die Administration von Schulen: Umgebung: ${proce const footerDataTable = new FooterDataTablePage(page); // Schulen können noch nicht gelöscht werden. Um doppelte Namen zu vermeiden, wird am dem Schulnamen eine Zufallszahl angehängt - const zufallsNr = faker.number.bigInt({ min: 1000, max: 9000 }) - const schulname1 = "TAuto-PW-S1-" + faker.lorem.word({ length: { min: 8, max: 12 }}) + zufallsNr; - const schulname2 = "TAuto-PW-S2-" + faker.lorem.word({ length: { min: 8, max: 12 }}) + zufallsNr; - const dienststellenNr1 = "0" + faker.number.bigInt({ min: 10000000, max: 100000000 }); - const dienststellenNr2 = "0" + faker.number.bigInt({ min: 10000000, max: 100000000 }); + const schulname1 = await generateSchulname(); + const schulname2 = await generateSchulname(); + const dienststellenNr1 = await generateDienststellenNr(); + const dienststellenNr2 = await generateDienststellenNr(); const { menue, schuleCreationView }: { menue: MenuPage; schuleCreationView: SchuleCreationViewPage } = await test.step(`Dialog Schule anlegen öffnen`, async (): Promise<{ menue: MenuPage; schuleCreationView: SchuleCreationViewPage }> => { @@ -140,16 +138,15 @@ test.describe(`Testfälle für die Administration von Schulen: Umgebung: ${proce test("Eine Schule anlegen als Schuladmin und die Bestätigungsseite vollständig prüfen", {tag: [LONG, SHORT]}, async ({ page }) => { // Schulen können noch nicht gelöscht werden. Um doppelte Namen zu vermeiden, wird am dem Schulnamen eine Zufallszahl angehängt - const zufallsNr = faker.number.bigInt({ min: 1000, max: 9000 }); - const schulname = "TAuto-PW-S1-" + faker.lorem.word({ length: { min: 8, max: 12 }}) + zufallsNr; - const dienststellenNr = "0" + faker.number.bigInt({ min: 10000000, max: 100000000 }); + const schulname = await generateSchulname(); + const dienststellenNr = await generateDienststellenNr(); const landing: LandingPage = new LandingPage(page); const header = new HeaderPage(page); let userInfo: UserInfo; const startseite: StartPage = await test.step(`Testdaten: Schuladmin anlegen und mit diesem anmelden`, async () => { - const idSP = await getSPId(page, 'Schulportal-Administration'); - userInfo = await createRolleAndPersonWithUserContext(page, 'Testschule Schulportal', 'LEIT', 'TAuto-PW-B-MeierLEIT', 'TAuto-PW-B-Hans', idSP, await generateRolleName()); + const idSPs: Array = [await getSPId(page, 'Schulportal-Administration')]; + userInfo = await createRolleAndPersonWithUserContext(page, 'Testschule Schulportal', 'LEIT', await generateNachname(), await generateVorname(), idSPs, await generateRolleName()); personId.push(userInfo.personId); roleId.push(userInfo.rolleId); await addSystemrechtToRolle(page, userInfo.rolleId, 'SCHULEN_VERWALTEN'); diff --git a/tests/SchulportalAdministration.spec.ts b/tests/SchulportalAdministration.spec.ts index 2cc0e3c..a1683b5 100644 --- a/tests/SchulportalAdministration.spec.ts +++ b/tests/SchulportalAdministration.spec.ts @@ -9,7 +9,7 @@ import { addSystemrechtToRolle } from "../base/api/testHelperRolle.page"; import { UserInfo } from "../base/api/testHelper.page"; import { LONG, SHORT, STAGE } from "../base/tags"; import { deletePersonById, deleteRolleById } from "../base/testHelperDeleteTestdata"; -import { generateRolleName } from "../base/testHelperGenerateTestdataNames"; +import { generateNachname, generateRolleName, generateVorname } from "../base/testHelperGenerateTestdataNames"; const PW: string | undefined = process.env.PW; const ADMIN: string | undefined = process.env.USER; @@ -59,8 +59,8 @@ test.describe(`Testfälle für Schulportal Administration": Umgebung: ${process. await landing.button_Anmelden.click(); await login.login(ADMIN, PW); - const idSP = await getSPId(page, 'E-Mail'); - const userInfo: UserInfo = await createRolleAndPersonWithUserContext(page, 'Testschule Schulportal', 'LEHR', 'TAuto-PW-B-MeierLehrer', 'TAuto-PW-B-Hans', idSP, await generateRolleName()); + const idSPs: Array = [await getSPId(page, 'E-Mail')]; + const userInfo: UserInfo = await createRolleAndPersonWithUserContext(page, 'Testschule Schulportal', 'LEHR', await generateNachname(), await generateVorname(), idSPs, await generateRolleName()); personId.push(userInfo.personId); rolleId.push(userInfo.rolleId); await header.logout(); @@ -86,8 +86,8 @@ test.describe(`Testfälle für Schulportal Administration": Umgebung: ${process. await landing.button_Anmelden.click(); await login.login(ADMIN, PW); - const idSP = await getSPId(page, 'itslearning'); - const userInfo: UserInfo = await createRolleAndPersonWithUserContext(page, 'Testschule Schulportal', 'LERN', 'TAuto-PW-B-JansenSchüler', 'TAuto-PW-B-Helga', idSP, await generateRolleName()); + const idSPs: Array = [await getSPId(page, 'itslearning')]; + const userInfo: UserInfo = await createRolleAndPersonWithUserContext(page, 'Testschule Schulportal', 'LERN', await generateNachname(), await generateVorname(), idSPs, await generateRolleName()); personId.push(userInfo.personId); rolleId.push(userInfo.rolleId); await header.logout(); @@ -113,8 +113,8 @@ test.describe(`Testfälle für Schulportal Administration": Umgebung: ${process. await landing.button_Anmelden.click(); await login.login(ADMIN, PW); - const idSP = await getSPId(page, 'Schulportal-Administration'); - const userInfo: UserInfo = await createRolleAndPersonWithUserContext(page, 'Testschule Schulportal', 'LEIT', 'TAuto-PW-B-MeierAdmin', 'TAuto-PW-B-Peter', idSP, await generateRolleName()); + const idSPs: Array = [await getSPId(page, 'Schulportal-Administration')]; + const userInfo: UserInfo = await createRolleAndPersonWithUserContext(page, 'Testschule Schulportal', 'LEIT', await generateNachname(), await generateVorname(), idSPs, await generateRolleName()); personId.push(userInfo.personId); rolleId.push(userInfo.rolleId); diff --git a/tests/login.spec.ts b/tests/login.spec.ts index fd61a2a..7b655fe 100644 --- a/tests/login.spec.ts +++ b/tests/login.spec.ts @@ -112,16 +112,15 @@ test.describe(`Testfälle für die Authentifizierung: Umgebung: ${process.env.EN const lehrerRollenart: string = 'LEHR'; const lehrerOrganisation: string = testschule; let userInfoLehrer: UserInfo; - let lehrerIdSP: string = ''; let organisationIDLandSh: string = ''; await test.step(`Testdaten: Gesperrten Lehrer über die api anlegen ${ADMIN}`, async () => { await page.goto('/'); await landing.button_Anmelden.click(); await login.login(ADMIN, PW); - lehrerIdSP = await getSPId(page, 'E-Mail'); + const lehrerIdSPs: Array = [await getSPId(page, 'E-Mail')]; organisationIDLandSh = await getOrganisationId(page, 'Land Schleswig-Holstein'); - userInfoLehrer = await createRolleAndPersonWithUserContext(page, lehrerOrganisation, lehrerRollenart, lehrerVorname, lehrerNachname, lehrerIdSP, lehrerRolle); + userInfoLehrer = await createRolleAndPersonWithUserContext(page, lehrerOrganisation, lehrerRollenart, lehrerVorname, lehrerNachname, lehrerIdSPs, lehrerRolle); username.push(userInfoLehrer.username); rolleId.push(userInfoLehrer.rolleId); await lockPerson(page, userInfoLehrer.personId, organisationIDLandSh); diff --git a/tests/workflow.spec.ts b/tests/workflow.spec.ts index c1a6587..ffea6e5 100644 --- a/tests/workflow.spec.ts +++ b/tests/workflow.spec.ts @@ -3,7 +3,6 @@ import { LandingPage } from "../pages/LandingView.page"; import { LoginPage } from "../pages/LoginView.page"; import { StartPage } from "../pages/StartView.page"; import { Email4TeacherPage } from "../pages/Cards/Email4Teacher.page"; -import { ItsLearningPage } from "../pages/Cards/ItsLearning.page"; import { PersonManagementViewPage } from "../pages/admin/PersonManagementView.page"; import { PersonDetailsViewPage } from "../pages/admin/PersonDetailsView.page"; import { HeaderPage } from "../pages/Header.page"; @@ -12,13 +11,14 @@ import { CalendarPage } from "../pages/Cards/Calendar.page"; import { DirectoryPage } from "../pages/Cards/Directory.page"; import { createTeacherAndLogin } from "../base/api/testHelperPerson.page"; import { UserInfo} from "../base/api/testHelper.page.ts"; -import { deletePersonenBySearchStrings } from "../base/testHelperDeleteTestdata.ts"; +import { deletePersonenBySearchStrings, deleteRolleById } from "../base/testHelperDeleteTestdata.ts"; const PW: string | undefined = process.env.PW; const ADMIN: string | undefined = process.env.USER; const ENV: string | undefined = process.env.ENV; let usernames: string[] = []; // Im afterEach Block werden alle Testdaten gelöscht +let rolleIds: string[] = []; test.describe(`Testfälle für den Test von workflows: Umgebung: ${process.env.ENV}: URL: ${process.env.FRONTEND_URL}:`, () => { test.beforeEach(async ({ page }) => { @@ -50,6 +50,16 @@ test.describe(`Testfälle für den Test von workflows: Umgebung: ${process.env.E await deletePersonenBySearchStrings(page, usernames); usernames = []; } + + if (rolleIds) { // nur wenn der Testfall auch mind. eine Rolle angelegt hat + await header.logout(); + await landing.button_Anmelden.click(); + await login.login(ADMIN, PW); + await expect(startseite.text_h2_Ueberschrift).toBeVisible(); + + await deleteRolleById(rolleIds, page); + rolleIds = []; + } }); await test.step(`Abmelden`, async () => { @@ -67,6 +77,7 @@ test.describe(`Testfälle für den Test von workflows: Umgebung: ${process.env.E await test.step(`Lehrer via api anlegen und mit diesem anmelden`, async () => { userInfoAdmin = await createTeacherAndLogin(page); usernames.push(userInfoAdmin.username); + rolleIds.push(userInfoAdmin.rolleId); }); await test.step(`Kacheln Email für Lehrkräfte und Itslearning öffnen, danach beide Kacheln wieder schließen`, async () => {