From 3882cde8ca6b847c772422692de6b7af5e146ae8 Mon Sep 17 00:00:00 2001 From: Jan Klattenhoff Date: Fri, 17 Jan 2025 12:17:27 +0100 Subject: [PATCH] test: add initial tests for qualifications management --- tests/qualifikationsverwaltung.spec.ts | 58 ++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 tests/qualifikationsverwaltung.spec.ts diff --git a/tests/qualifikationsverwaltung.spec.ts b/tests/qualifikationsverwaltung.spec.ts new file mode 100644 index 0000000..42cfd46 --- /dev/null +++ b/tests/qualifikationsverwaltung.spec.ts @@ -0,0 +1,58 @@ +import { test, expect } from "@playwright/test"; + +test.describe('qualifikationen', () => { + test.beforeEach(async ({ page }) => { + await page.goto('http://localhost:4200'); + + await page.getByRole('button').click(); + await page.waitForFunction(() => window.location.href.includes('keycloak')); + await page.getByLabel('Username or email').fill('user'); + await page.getByLabel('Password').fill('test'); + await page.click('#kc-login'); + + await page.goto('http://localhost:4200/qualifikationsverwaltung'); + }); + + test('ShouldLoad', async ({ page }) => { + await expect(page.getByRole('heading')).toHaveText("Qualifications"); + }); + + test('ShouldLoadQualifications', async ({ page }) => { + expect(page.getByText('Java')).toBeTruthy(); + }); + + // TODO + // test('AddQualificationShouldRedirect', async ({ page }) => { + // await page.getByText('Add qualification').click(); + + // expect(page.url()).toContain('mitarbeitererstellen'); + // }); + + test('EditShouldRedirectToCorrespondingPage', async ({ page }) => { + const button = page.getByText('Edit').first(); + await button.click(); + + expect(page.url()).toContain('qualifikationbearbeiten'); + expect(page.url()).toContain('1'); + }); + + test('DeleteShouldBeThere', async ({ page }) => { + const button = page.getByText('Delete').first(); + + const users = page.getByText('Delete'); + await users.first().waitFor({ state: "visible" }); + expect(await users.count()).toBe(2); + expect(button).toBeTruthy(); + }); + + test('SearchShouldWork', async ({ page }) => { + const searchField = page.getByRole('textbox'); + const searchButton = page.getByText('Search').first(); + + await searchField.fill('Java'); + await searchButton.click(); + + const hiddenItem = page.getByText('Angular'); + await expect(hiddenItem).toHaveCount(0); + }); +});