task #46821 verua-e2e: setup playwright testing environment with first test cases 1,2,3.

This commit is contained in:
tertek 2025-09-30 09:13:16 +02:00
commit c30aa58577
12 changed files with 1729 additions and 0 deletions

28
tests/auth.setup.ts Normal file
View file

@ -0,0 +1,28 @@
import { test as setup, expect } from '@playwright/test';
import path from 'path';
const authFile = path.join(__dirname, '../playwright/.auth/user.json');
setup('authenticate', async ({ page }) => {
// Perform authentication steps.
await page.goto('https://demo.verua.org');
await page.locator('input[name="name"]').click();
await page.locator('input[name="name"]').fill('demo');
await page.locator('input[name="pwd"]').click();
await page.locator('input[name="pwd"]').fill('demo');
await page.getByRole('button', { name: 'Jetzt anmelden' }).click();
// Wait until the page receives the cookies.
//
// Sometimes login flow sets cookies in the process of several redirects.
// Wait for the final URL to ensure that the cookies are actually set.
//await page.waitForURL('https://demo.verua.org/start.php?first=1&id_owner=1');
// Alternatively, you can wait until the page reaches a state where all cookies are set.
//await expect(page.getByRole('button', { name: 'View profile and more' })).toBeVisible();
await expect(page.getByRole('link', { name: 'ABMELDEN (demo)' })).toHaveText("ABMELDEN (demo)")
// End of authentication steps.
await page.context().storageState({ path: authFile });
});

52
tests/verua.spec.ts Normal file
View file

@ -0,0 +1,52 @@
import { test, expect } from '@playwright/test';
/**
* This spec is for testing VeruA application.
*
* Testing Instance: demo
* Testing User: demo
* Testing Host: VRG
* Testing URL: demo.verua.org
* Testing users:
* - 181
*
* Note: Authentication is processed through auth.setup.ts and is managed by Playwright automatically
*
*/
test('01 - login to verua application', async ({ page }) => {
await page.goto('https://demo.verua.org/start.php?first=1&id_owner=1');
await expect(page.getByRole('link', { name: 'ABMELDEN (demo)' })).toHaveText("ABMELDEN (demo)")
});
test('02 - create a new client', async ({ page }) => {
await page.goto('https://demo.verua.org/start.php?first=1&id_owner=1');
await page.getByRole('cell', { name: 'Suche nach Klient:    Klientenliste:   aktive Klienten   Neuen Klienten anlegen' }).getByRole('link').click();
await page.locator('iframe[name="edit_data"]').contentFrame().locator('input[name="nn"]').click();
await page.locator('iframe[name="edit_data"]').contentFrame().locator('input[name="nn"]').fill('TEST');
await page.locator('iframe[name="edit_data"]').contentFrame().getByRole('button', { name: 'Daten speichern' }).click();
await page.locator('iframe[name="edit_data"]').contentFrame().getByRole('link', { name: 'Weiter zum nächsten Schritt' }).click();
await expect(page.locator('iframe[name="edit_data"]').contentFrame().getByText('Schritt 3/3 : Versicherung fü')).toHaveText("Schritt 3/3 : Versicherung für Frau TEST zuordnen");
await page.locator('iframe[name="edit_data"]').contentFrame().getByRole('link', { name: 'Weiter zum nächsten Schritt' }).click();
await expect(page.locator('iframe[name="edit_data"]').contentFrame().getByText('Klientendossier wurde')).toHaveText("Klientendossier wurde erfolgreich erstellt!");
});
test('03 - create care report', async ({ page }) => {
await page.goto('https://demo.verua.org/start.php?id_k=181&sicht=2&aktiv=1');
await page.locator('iframe[name="edit_data"]').contentFrame().getByRole('link', { name: 'Neuer Eintrag' }).click();
await page.locator('iframe[name="edit_data"]').contentFrame().locator('input[name="ankunft"]').click();
await page.locator('iframe[name="edit_data"]').contentFrame().locator('input[name="ankunft"]').fill('06:30');
await page.locator('iframe[name="edit_data"]').contentFrame().locator('iframe[title="Rich-Text-Area"]').contentFrame().locator('html').click();
await page.locator('iframe[name="edit_data"]').contentFrame().locator('iframe[title="Rich-Text-Area"]').contentFrame().getByLabel('Rich-Text-Bereich. Drücken').fill('Lorem ipsum dolor sit amet');
await page.locator('iframe[name="edit_data"]').contentFrame().locator('#sendForm1').getByRole('button', { name: 'Bericht speichern und zur' }).click();
await expect(page.locator('iframe[name="edit_data"]').contentFrame().getByText('Lorem ipsum dolor sit amet')).toHaveText("Lorem ipsum dolor sit amet")
});