diff --git a/base/api/testHelperPerson.page.ts b/base/api/testHelperPerson.page.ts index f770381..5f24416 100644 --- a/base/api/testHelperPerson.page.ts +++ b/base/api/testHelperPerson.page.ts @@ -6,6 +6,7 @@ import { HeaderPage } from '../../pages/Header.page'; import { LoginPage } from '../../pages/LoginView.page'; import { faker } from '@faker-js/faker'; import { lehrkraftOeffentlichRolle } from '../roles'; +import { generateLehrerNachname, generateLehrerVorname } from "../testHelperGenerateTestdataNames"; const FRONTEND_URL: string | undefined = process.env.FRONTEND_URL || ""; @@ -43,6 +44,8 @@ export async function createPersonWithUserContext(page: Page, organisationName: // API-Calls machen und Benutzer mit Kontext anlegen const organisationId: string = await getOrganisationId(page, organisationName); const rolleId: string = await getRolleId(page, rolleName); + console.log('rolleName: ' + rolleName); + console.log('rolleId: ' + rolleId); const userInfo: UserInfo = await createPerson(page, familienname, vorname, organisationId, rolleId, koPersNr); return userInfo; } @@ -95,8 +98,8 @@ export async function getPersonId(page: Page, Benutzername: string): Promise { diff --git a/base/api/testHelperServiceprovider.page.ts b/base/api/testHelperServiceprovider.page.ts index ce43e1e..db2380c 100644 --- a/base/api/testHelperServiceprovider.page.ts +++ b/base/api/testHelperServiceprovider.page.ts @@ -3,7 +3,11 @@ import { Page, expect } from '@playwright/test'; const FRONTEND_URL: string | undefined = process.env.FRONTEND_URL || ""; export async function getSPId(page: Page, nameSP: string): Promise { - const response = await page.request.get(FRONTEND_URL + `api/provider/all`, {}); + let response = await page.request.get(FRONTEND_URL + `api/provider/all`, {}); + if(response.status() != 200) { + console.log(response); + response = await page.request.get(FRONTEND_URL + `api/provider/all`, {}); + } expect(response.status()).toBe(200); const json = await response.json(); expect(response.status()).toBe(200); diff --git a/base/testHelperGenerateTestdataNames.ts b/base/testHelperGenerateTestdataNames.ts index 9df7e9a..b014915 100644 --- a/base/testHelperGenerateTestdataNames.ts +++ b/base/testHelperGenerateTestdataNames.ts @@ -1,15 +1,14 @@ import { faker } from "@faker-js/faker/locale/de"; +import { generateRandomString, CharacterSetType } from "ts-randomstring/lib/index.js" export async function generateLehrerVorname(){ - return "TAuto-PW-V-" + faker.person.firstName(); + return "TAuto-PW-V-" + faker.person.firstName() + generateRandomString({length: 3,charSetType: CharacterSetType.Alphabetic}) } export async function generateLehrerNachname(){ - return "TAuto-PW-N-" + faker.person.lastName(); + return "TAuto-PW-N-" + faker.person.lastName() + generateRandomString({length: 3,charSetType: CharacterSetType.Alphabetic}) } -export function generateRolleName(){ - return "TAuto-PW-R-" + faker.lorem.word({ length: { min: 8, max: 12 }}); -} - - +export async function generateRolleName(){ + return "TAuto-PW-R-" + faker.lorem.word({ length: { min: 7, max: 7 }}) + generateRandomString({length: 3,charSetType: CharacterSetType.Alphabetic}) +} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 65eec35..05ed0d4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,7 +14,9 @@ "@fast-csv/parse": "^4.3.6", "fast-csv": "^4.3.6", "generate-password-ts": "^1.6.5", - "moment": "^2.30.1" + "moment": "^2.30.1", + "randomstring": "^1.3.0", + "ts-randomstring": "^1.0.8" }, "devDependencies": { "@playwright/test": "^1.47.2", @@ -1553,6 +1555,25 @@ } ] }, + "node_modules/randombytes": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.3.tgz", + "integrity": "sha512-lDVjxQQFoCG1jcrP06LNo2lbWp4QTShEXnhActFBwYuHprllQV6VUpwreApsYqCgD+N1mHoqJ/BI/4eV4R2GYg==" + }, + "node_modules/randomstring": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/randomstring/-/randomstring-1.3.0.tgz", + "integrity": "sha512-gY7aQ4i1BgwZ8I1Op4YseITAyiDiajeZOPQUbIq9TPGPhUm5FX59izIaOpmKbME1nmnEiABf28d9K2VSii6BBg==", + "dependencies": { + "randombytes": "2.0.3" + }, + "bin": { + "randomstring": "bin/randomstring" + }, + "engines": { + "node": "*" + } + }, "node_modules/resolve-from": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", @@ -1710,6 +1731,19 @@ "typescript": ">=4.2.0" } }, + "node_modules/ts-randomstring": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/ts-randomstring/-/ts-randomstring-1.0.8.tgz", + "integrity": "sha512-sZeKpZl5Od7exAW2FsAFTWxtUj7mjwqmwjlVxpF9ZWmFXyEn1JZMxIqhsrZ8uuXLC69pQ1+wFb2/Bym3mzd/aA==", + "dependencies": { + "@types/node": "^16.3.1" + } + }, + "node_modules/ts-randomstring/node_modules/@types/node": { + "version": "16.18.119", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.119.tgz", + "integrity": "sha512-ia7V9a2FnhUFfetng4/sRPBMTwHZUkPFY736rb1cg9AgG7MZdR97q7/nLR9om+sq5f1la9C857E0l/nrI0RiFQ==" + }, "node_modules/type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", diff --git a/package.json b/package.json index c240b3d..27aead3 100644 --- a/package.json +++ b/package.json @@ -29,16 +29,7 @@ "@fast-csv/parse": "^4.3.6", "fast-csv": "^4.3.6", "generate-password-ts": "^1.6.5", - "moment": "^2.30.1" - }, - "name": "schulportal-testautomatisierung", - "description": "", - "version": "0.6.0", - "main": "index.js", - "directories": { - "test": "tests" - }, - "keywords": [], - "author": "Dataport AöR", - "license": "EUPL-1.2" + "moment": "^2.30.1", + "ts-randomstring": "^1.0.8" + } } diff --git a/playwright.config.ts b/playwright.config.ts index c6f403f..6326376 100644 --- a/playwright.config.ts +++ b/playwright.config.ts @@ -22,7 +22,7 @@ export default defineConfig({ forbidOnly: !!process.env.CI, retries: process.env.CI ? 2 : 0, maxFailures: 9, - workers: process.env.CI ? 1 : undefined, + workers: process.env.CI ? 2 : undefined, reporter: [["html"]], use: { trace: "on-first-retry", diff --git a/tests/Klasse.spec.ts b/tests/Klasse.spec.ts index 944e03d..269d07b 100644 --- a/tests/Klasse.spec.ts +++ b/tests/Klasse.spec.ts @@ -70,7 +70,7 @@ test.describe(`Testfälle für die Administration von Klassen: Umgebung: ${proce await test.step(`In der Ergebnisliste prüfen, dass die neue Klasse angezeigt wird`, async () => { await menue.menueItem_AlleKlassenAnzeigen.click(); await klasseManagementView.combobox_Filter_Schule.fill(schulname); - await page.getByText(`${schulname}`, { exact: true }).click(); + await page.getByText(`${schulname}`, { exact: true }).click({delay:1000}); await klasseManagementView.text_h2_Klassenverwaltung.click(); // dies schließt das Dropdown Klasse await expect(page.getByRole('cell', { name: klassenname })).toBeVisible(); }); diff --git a/tests/Person.spec.ts b/tests/Person.spec.ts index f0da1ab..e8a0429 100644 --- a/tests/Person.spec.ts +++ b/tests/Person.spec.ts @@ -15,7 +15,7 @@ import { addSystemrechtToRolle } from "../base/api/testHelperRolle.page"; import { LONG, SHORT, STAGE, BROWSER } from "../base/tags"; import { deletePersonByUsername, deleteRolleById, deleteRolleByName } from "../base/testHelperDeleteTestdata.ts"; import { landesadminRolle, schuelerRolle, schuladminOeffentlichRolle } from "../base/roles.ts"; -import { generateRolleName } from "../base/testHelperGenerateTestdataNames.ts"; +import { generateLehrerNachname, generateLehrerVorname, generateRolleName } from "../base/testHelperGenerateTestdataNames.ts"; const PW: string | undefined = process.env.PW; const ADMIN: string | undefined = process.env.USER; @@ -230,7 +230,7 @@ test.describe(`Testfälle für die Administration von Personen": Umgebung: ${pro // 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, generateRolleName()); + userInfo = await createRolleAndPersonWithUserContext(page, schulstrukturknoten, 'LEIT', nachname, vorname, idSP, await generateRolleName()); await addSystemrechtToRolle(page, userInfo.rolleId, 'PERSONEN_VERWALTEN'); await addSystemrechtToRolle(page, userInfo.rolleId, 'PERSONEN_ANLEGEN'); @@ -393,9 +393,10 @@ test.describe(`Testfälle für die Administration von Personen": Umgebung: ${pro await personCreationView.combobox_Rolle.click(); await expect(personCreationView.listbox_Rolle).toContainText(rolleLehr); await expect(personCreationView.listbox_Rolle).toContainText(rolleLiV); - await expect(personCreationView.listbox_Rolle).toContainText(schuladminOeffentlichRolle); await expect(personCreationView.listbox_Rolle).toContainText(schuelerRolle); await expect(personCreationView.listbox_Rolle).not.toContainText(landesadminRolle); + await page.keyboard.type(schuladminOeffentlichRolle); + await expect(personCreationView.listbox_Rolle).toContainText(schuladminOeffentlichRolle); }); }); @@ -519,7 +520,7 @@ test.describe(`Testfälle für die Administration von Personen": Umgebung: ${pro 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, generateRolleName()); + userInfo = await createRolleAndPersonWithUserContext(page, 'Land Schleswig-Holstein', 'SYSADMIN', 'TAuto-PW-B-Master', 'TAuto-PW-B-Hans', idSP, await generateRolleName()); await addSystemrechtToRolle(page, userInfo.rolleId, 'ROLLEN_VERWALTEN'); await addSystemrechtToRolle(page, userInfo.rolleId, 'PERSONEN_SOFORT_LOESCHEN'); await addSystemrechtToRolle(page, userInfo.rolleId, 'PERSONEN_VERWALTEN'); @@ -679,9 +680,9 @@ test.describe(`Testfälle für die Administration von Personen": Umgebung: ${pro const PersonDetailsView = new PersonDetailsViewPage(page); const header = new HeaderPage(page); - const vorname = "TAuto-PW-V-" + faker.person.firstName(); - const nachname = "TAuto-PW-N-" + faker.person.lastName(); - const rolle = generateRolleName(); + const vorname = await generateLehrerVorname(); + const nachname = await generateLehrerNachname(); + const rolle = await generateRolleName(); const berechtigung = 'SYSADMIN'; const idSP = await getSPId(page, 'Schulportal-Administration'); diff --git a/tests/PersonBearbeiten.spec.ts b/tests/PersonBearbeiten.spec.ts index 546d84a..9ce47c4 100644 --- a/tests/PersonBearbeiten.spec.ts +++ b/tests/PersonBearbeiten.spec.ts @@ -81,7 +81,7 @@ test.describe(`Testfälle für die Administration von Personen": Umgebung: ${pro const addminVorname = "TAuto-PW-V-" + faker.person.firstName(); const adminNachname = "TAuto-PW-N-" + faker.person.lastName(); - const adminRolle = generateRolleName(); + const adminRolle = await generateRolleName(); const adminRollenart = 'LEIT'; const adminOrganisation = 'Testschule-PW665'; const adminIdSP = await getSPId(page, 'Schulportal-Administration'); @@ -89,7 +89,7 @@ test.describe(`Testfälle für die Administration von Personen": Umgebung: ${pro const lehrerVorname = "TAuto-PW-V-" + faker.person.firstName(); const lehrerNachname = "TAuto-PW-N-" + faker.person.lastName(); - const lehrerRolle = generateRolleName(); + const lehrerRolle = await generateRolleName(); const lehrerRollenart = 'LEHR'; const lehrerOrganisation = 'Testschule-PW665'; const lehrerIdSP = await getSPId(page, 'E-Mail'); @@ -149,7 +149,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 generateLehrerNachname(), await generateLehrerVorname(), await getSPId(page, email), generateRolleName()); + userInfoLehrer = await createRolleAndPersonWithUserContext(page, testschule, typelehrer, await generateLehrerNachname(), await generateLehrerVorname(), await getSPId(page, email), await generateRolleName()); username.push(userInfoLehrer.username); rolleId.push(userInfoLehrer.rolleId); }) @@ -175,7 +175,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 generateLehrerNachname(), await generateLehrerVorname(), await getSPId(page, email), generateRolleName()); + userInfoLehrer = await createRolleAndPersonWithUserContext(page, testschule, typelehrer, await generateLehrerNachname(), await generateLehrerVorname(), 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 3a534ef..c29e560 100644 --- a/tests/Profile.spec.ts +++ b/tests/Profile.spec.ts @@ -12,7 +12,7 @@ import { UserInfo } from "../base/api/testHelper.page"; import { addSystemrechtToRolle } from "../base/api/testHelperRolle.page"; import { LONG, SHORT, STAGE, BROWSER } from "../base/tags"; import { deleteRolleById, deletePersonByUsername} from "../base/testHelperDeleteTestdata"; -import { generateRolleName } from "../base/testHelperGenerateTestdataNames"; +import { generateLehrerNachname, generateLehrerVorname, generateRolleName } from "../base/testHelperGenerateTestdataNames.ts"; const PW: string | undefined = process.env.PW; const ADMIN: string | undefined = process.env.USER; @@ -73,7 +73,7 @@ test.describe(`Testfälle für das eigene Profil anzeigen: Umgebung: ${process.e const vorname = "TAuto-PW-V-" + faker.person.firstName(); const nachname = "TAuto-PW-N-" + faker.person.lastName(); const organisation = 'Land Schleswig-Holstein'; - const rollenname = generateRolleName(); + const rollenname = await generateRolleName(); const rollenart = 'SYSADMIN' await test.step(`Landesadmin via api anlegen und mit diesem anmelden`, async () => { @@ -141,7 +141,7 @@ test.describe(`Testfälle für das eigene Profil anzeigen: Umgebung: ${process.e const nachname = "TAuto-PW-N-" + faker.person.lastName(); const organisation = 'Testschule Schulportal'; const dienststellenNr = '1111111'; - const rollenname = generateRolleName(); + const rollenname = await generateRolleName(); const rollenart = 'LEHR'; await test.step(`Lehrer via api anlegen und mit diesem anmelden`, async () => { @@ -199,7 +199,7 @@ test.describe(`Testfälle für das eigene Profil anzeigen: Umgebung: ${process.e const nachname = "TAuto-PW-N-" + faker.person.lastName(); const organisation = 'Testschule Schulportal'; const dienststellenNr = '1111111'; - const rollenname = generateRolleName(); + const rollenname = await generateRolleName(); const rollenart = 'LERN'; await test.step(`Lehrer via api anlegen und mit diesem anmelden`, async () => { @@ -256,7 +256,7 @@ test.describe(`Testfälle für das eigene Profil anzeigen: Umgebung: ${process.e const nachname = "TAuto-PW-N-" + faker.person.lastName(); const organisation = 'Testschule Schulportal'; const dienststellenNr = '1111111'; - const rollenname = generateRolleName(); + const rollenname = await generateRolleName(); const rollenart = 'LEIT' await test.step(`Lehrer via api anlegen und mit diesem anmelden`, async () => { @@ -311,13 +311,13 @@ test.describe(`Testfälle für das eigene Profil anzeigen: Umgebung: ${process.e const login: LoginPage = new LoginPage(page); let personId = ''; - const vorname = "TAuto-PW-V-" + faker.person.firstName(); - const nachname = "TAuto-PW-N-" + faker.person.lastName(); + const vorname = await generateLehrerVorname(); + const nachname = await generateLehrerNachname(); const organisation1 = 'Testschule Schulportal'; const organisation2 = 'Carl-Orff-Schule'; const dienststellenNr1 = '1111111'; const dienststellenNr2 = '0702948'; - const rollenname = generateRolleName(); + const rollenname = await generateRolleName(); const rollenart = 'LEHR'; await test.step(`Lehrer via api anlegen und mit diesem anmelden`, async () => { @@ -350,29 +350,62 @@ test.describe(`Testfälle für das eigene Profil anzeigen: Umgebung: ${process.e await expect(profileView.label_KopersNr).toBeHidden(); await expect(profileView.data_KopersNr).toBeHidden(); await expect(profileView.icon_InfoPersoenlicheDaten).toBeVisible(); - // Schulzuordnung 1 - await expect(profileView.cardHeadline_Schulzuordnung1).toHaveText('Schulzuordnung 1'); - await expect(profileView.label_Schule1).toHaveText('Schule:'); - await expect(profileView.data_Schule1).toHaveText(organisation1); - await expect(profileView.label_Rolle1).toHaveText('Rolle:'); - await expect(profileView.data_Rolle1).toHaveText(rollenname); - await expect(profileView.label_Dienststellennummer1).toHaveText('DStNr.:'); - await expect(profileView.data_Dienststellennummer1).toHaveText(dienststellenNr1); - // Schulzuordnung 2 - await expect(profileView.cardHeadline_Schulzuordnung2).toHaveText('Schulzuordnung 2'); - await expect(profileView.label_Schule2).toHaveText('Schule:'); - await expect(profileView.data_Schule2).toHaveText(organisation2); - await expect(profileView.label_Rolle2).toHaveText('Rolle:'); - await expect(profileView.data_Rolle2).toHaveText(rollenname); - await expect(profileView.label_Dienststellennummer2).toHaveText('DStNr.:'); - await expect(profileView.data_Dienststellennummer2).toHaveText(dienststellenNr2); - // Passwort - await expect(profileView.cardHeadline_Passwort).toHaveText('Passwort'); - await expect(profileView.button_NeuesPasswortSetzen).toBeEnabled(); - // 2FA - // Aktuell wird der Abschnitt 2FA generell nicht angezeigt - // await expect(profileView.cardHeadline_2FA).toHaveText('Zwei-Faktor-Authentifizierung'); - // await expect(profileView.button_2FAEinrichten).toBeEnabled(); + + // prüfen, welche von den beiden Schulen zuerst angezeigt wird in der Tabelle + if(await profileView.data_Schule1.innerText() == organisation1) { + // Schulzuordnung 1 + await expect(profileView.cardHeadline_Schulzuordnung1).toHaveText('Schulzuordnung 1'); + await expect(profileView.label_Schule1).toHaveText('Schule:'); + await expect(profileView.data_Schule1).toHaveText(organisation1); + await expect(profileView.label_Rolle1).toHaveText('Rolle:'); + await expect(profileView.data_Rolle1).toHaveText(rollenname); + await expect(profileView.label_Dienststellennummer1).toHaveText('DStNr.:'); + await expect(profileView.data_Dienststellennummer1).toHaveText(dienststellenNr1); + + // Schulzuordnung 2 + await expect(profileView.cardHeadline_Schulzuordnung2).toHaveText('Schulzuordnung 2'); + await expect(profileView.label_Schule2).toHaveText('Schule:'); + await expect(profileView.data_Schule2).toHaveText(organisation2); + await expect(profileView.label_Rolle2).toHaveText('Rolle:'); + await expect(profileView.data_Rolle2).toHaveText(rollenname); + await expect(profileView.label_Dienststellennummer2).toHaveText('DStNr.:'); + await expect(profileView.data_Dienststellennummer2).toHaveText(dienststellenNr2); + // Passwort + await expect(profileView.cardHeadline_Passwort).toHaveText('Passwort'); + await expect(profileView.button_NeuesPasswortSetzen).toBeEnabled(); + // 2FA + // Aktuell wird der Abschnitt 2FA generell nicht angezeigt + // await expect(profileView.cardHeadline_2FA).toHaveText('Zwei-Faktor-Authentifizierung'); + // await expect(profileView.button_2FAEinrichten).toBeEnabled(); + } + else { + // Schulzuordnung 1 + await expect(profileView.cardHeadline_Schulzuordnung2).toHaveText('Schulzuordnung 2'); + await expect(profileView.label_Schule2).toHaveText('Schule:'); + await expect(profileView.data_Schule2).toHaveText(organisation1); + await expect(profileView.label_Rolle2).toHaveText('Rolle:'); + await expect(profileView.data_Rolle2).toHaveText(rollenname); + await expect(profileView.label_Dienststellennummer2).toHaveText('DStNr.:'); + await expect(profileView.data_Dienststellennummer2).toHaveText(dienststellenNr1); + + // Schulzuordnung 2 + await expect(profileView.cardHeadline_Schulzuordnung1).toHaveText('Schulzuordnung 1'); + await expect(profileView.label_Schule1).toHaveText('Schule:'); + await expect(profileView.data_Schule1).toHaveText(organisation2); + await expect(profileView.label_Rolle1).toHaveText('Rolle:'); + await expect(profileView.data_Rolle1).toHaveText(rollenname); + await expect(profileView.label_Dienststellennummer1).toHaveText('DStNr.:'); + await expect(profileView.data_Dienststellennummer1).toHaveText(dienststellenNr2); + + // Passwort + await expect(profileView.cardHeadline_Passwort).toHaveText('Passwort'); + await expect(profileView.button_NeuesPasswortSetzen).toBeEnabled(); + // 2FA + // Aktuell wird der Abschnitt 2FA generell nicht angezeigt + // await expect(profileView.cardHeadline_2FA).toHaveText('Zwei-Faktor-Authentifizierung'); + // await expect(profileView.button_2FAEinrichten).toBeEnabled(); + + } }); }); @@ -381,15 +414,13 @@ test.describe(`Testfälle für das eigene Profil anzeigen: Umgebung: ${process.e const header = new HeaderPage(page); const login = new LoginPage(page); - const vorname = "TAuto-PW-V-" + faker.person.firstName(); - const nachname = "TAuto-PW-N-" + faker.person.lastName(); const organisation = 'Testschule Schulportal'; - const rollenname = generateRolleName(); + const rollenname = await generateRolleName(); 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 userInfo: UserInfo = await createRolleAndPersonWithUserContext(page, organisation, rollenart, await generateLehrerNachname(), await generateLehrerVorname(), idSP, await generateRolleName()); roleId.push(userInfo.rolleId); username.push(userInfo.username); diff --git a/tests/Rolle.spec.ts b/tests/Rolle.spec.ts index 6d5b13b..3b4d11f 100644 --- a/tests/Rolle.spec.ts +++ b/tests/Rolle.spec.ts @@ -56,7 +56,7 @@ test.describe(`Testfälle für die Administration von Rollen: Umgebung: ${proces faker.lorem.word({ length: { min: 8, max: 12 } }) + zufallsnummer; const schulstrukturknoten1 = "Land Schleswig-Holstein"; - const schulstrukturknoten2 = "0703754 (Amalie-Sieveking-Schule)"; + const schulstrukturknoten2 = "Ersatzschulen Land Schleswig-Holstein";; const rollenart1 = "Lern"; const rollenart2 = "Lehr"; const merkmal2 = "KoPers.-Nr. ist Pflichtangabe"; @@ -92,10 +92,8 @@ test.describe(`Testfälle für die Administration von Rollen: Umgebung: ${proces await test.step(`Zweite Rolle anlegen`, async () => { await rolleCreationView.button_WeitereRolleAnlegen.click(); - - await rolleCreationView.schulstrukturknoten.selectByTitle( - schulstrukturknoten2, - ); + await rolleCreationView.schulstrukturknoten.selectByTitle(schulstrukturknoten2); + await page.pause(); await rolleCreationView.rollenarten.selectByTitle(rollenart2); await rolleCreationView.enterRollenname(rollenname2); await rolleCreationView.merkmale.selectByTitle(merkmal2); diff --git a/tests/Schule.spec.ts b/tests/Schule.spec.ts index f82ac71..a346e26 100644 --- a/tests/Schule.spec.ts +++ b/tests/Schule.spec.ts @@ -150,7 +150,7 @@ test.describe(`Testfälle für die Administration von Schulen: Umgebung: ${proce 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, generateRolleName()); + userInfo = await createRolleAndPersonWithUserContext(page, 'Testschule Schulportal', 'LEIT', 'TAuto-PW-B-MeierLEIT', 'TAuto-PW-B-Hans', idSP, 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 1e139a4..056cc33 100644 --- a/tests/SchulportalAdministration.spec.ts +++ b/tests/SchulportalAdministration.spec.ts @@ -61,7 +61,7 @@ test.describe(`Testfälle für Schulportal Administration": Umgebung: ${process. 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, generateRolleName()); + const userInfo: UserInfo = await createRolleAndPersonWithUserContext(page, 'Testschule Schulportal', 'LEHR', 'TAuto-PW-B-MeierLehrer', 'TAuto-PW-B-Hans', idSP, await generateRolleName()); personId.push(userInfo.personId); rolleId.push(userInfo.rolleId); await header.logout(); @@ -88,7 +88,7 @@ test.describe(`Testfälle für Schulportal Administration": Umgebung: ${process. 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, generateRolleName()); + const userInfo: UserInfo = await createRolleAndPersonWithUserContext(page, 'Testschule Schulportal', 'LERN', 'TAuto-PW-B-JansenSchüler', 'TAuto-PW-B-Helga', idSP, await generateRolleName()); personId.push(userInfo.personId); rolleId.push(userInfo.rolleId); await header.logout(); @@ -115,7 +115,7 @@ test.describe(`Testfälle für Schulportal Administration": Umgebung: ${process. 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, generateRolleName()); + const userInfo: UserInfo = await createRolleAndPersonWithUserContext(page, 'Testschule Schulportal', 'LEIT', 'TAuto-PW-B-MeierAdmin', 'TAuto-PW-B-Peter', idSP, await generateRolleName()); personId.push(userInfo.personId); rolleId.push(userInfo.rolleId); diff --git a/tests/login.spec.ts b/tests/login.spec.ts index 98c2482..3f7b4d3 100644 --- a/tests/login.spec.ts +++ b/tests/login.spec.ts @@ -109,7 +109,7 @@ test.describe(`Testfälle für die Authentifizierung: Umgebung: ${process.env.UM const lehrerVorname = "TAuto-PW-V-" + faker.person.firstName(); const lehrerNachname = "TAuto-PW-N-" + faker.person.lastName(); - const lehrerRolle = generateRolleName(); + const lehrerRolle = await generateRolleName(); const lehrerRollenart = 'LEHR'; const lehrerOrganisation = 'Testschule Schulportal'; let userInfoLehrer: UserInfo; diff --git a/tests/workflow.spec.ts b/tests/workflow.spec.ts index 2b2a3b4..771ae47 100644 --- a/tests/workflow.spec.ts +++ b/tests/workflow.spec.ts @@ -33,6 +33,7 @@ test.describe(`Testfälle für den Test von workflows: Umgebung: ${process.env.E test("Angebote per Link öffnen als Lehrer", {tag: [LONG, SHORT, STAGE]}, async ({ page }) => { const startseite: StartPage = new StartPage(page); + const header: HeaderPage = new HeaderPage(page); await test.step(`Lehrer via api anlegen und mit diesem anmelden`, async () => { await createTeacherAndLogin(page); @@ -43,6 +44,8 @@ test.describe(`Testfälle für den Test von workflows: Umgebung: ${process.env.E // Die Schnittstelle email für Lehrkräfte(ox) gibt es nur auf stage // Auf dev wird nur getestet, dass die url für ox aufgerufen wird wenn man die Kachel email anklickt // Wenn SPSH-1043 auf stage deployed ist, muss der Test erweitert werden. Hier muss dann das erwartete Verhalten getestet werden, wenn man auf stage auf die Kachel(email, Adressbuch, Kalender) klickt + await expect(startseite.card_item_email).toBeVisible(); // warten bis die Seite geladen ist + const page_Email4Teacher_Promise = page.waitForEvent("popup"); await startseite.card_item_email.click(); const page_Email4Teacher = await page_Email4Teacher_Promise;