From 5f280ae3fc122f780fd1da0d62cea8b5b82bdb07 Mon Sep 17 00:00:00 2001 From: Anthony LC Date: Thu, 11 Jan 2024 12:32:45 +0100 Subject: [PATCH] =?UTF-8?q?=E2=9C=85(app-desk)=20e2e=20test=20app-desk?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Tests: - login to keycloak - create new teams - check teams are displayed --- .../apps/e2e/__tests__/app-desk/app.spec.ts | 28 +++++++++++++++++++ .../apps/e2e/__tests__/app-desk/common.ts | 14 ++++++++++ 2 files changed, 42 insertions(+) create mode 100644 src/frontend/apps/e2e/__tests__/app-desk/app.spec.ts create mode 100644 src/frontend/apps/e2e/__tests__/app-desk/common.ts diff --git a/src/frontend/apps/e2e/__tests__/app-desk/app.spec.ts b/src/frontend/apps/e2e/__tests__/app-desk/app.spec.ts new file mode 100644 index 0000000..938a5d4 --- /dev/null +++ b/src/frontend/apps/e2e/__tests__/app-desk/app.spec.ts @@ -0,0 +1,28 @@ +import { expect, test } from '@playwright/test'; + +import { keyCloakSignIn } from './common'; + +test.beforeEach(async ({ page }) => { + await page.goto('/'); + await keyCloakSignIn(page); +}); + +test.describe('App', () => { + test('should display the homepage after keycloak login', async ({ page }) => { + await expect(page.locator('h2')).toContainText('Hello world!'); + }); + + test('creates 2 teams and displayed them', async ({ page }) => { + await page.getByLabel('Team name').fill('My new team'); + await page.click('button:has-text("Create Team")'); + await page.getByLabel('Team name').fill('My second new team'); + await page.click('button:has-text("Create Team")'); + + await expect( + page.locator('li').getByText('My new team').first(), + ).toBeVisible(); + await expect( + page.locator('li').getByText('My second new team').first(), + ).toBeVisible(); + }); +}); diff --git a/src/frontend/apps/e2e/__tests__/app-desk/common.ts b/src/frontend/apps/e2e/__tests__/app-desk/common.ts new file mode 100644 index 0000000..f67ba42 --- /dev/null +++ b/src/frontend/apps/e2e/__tests__/app-desk/common.ts @@ -0,0 +1,14 @@ +import { Page } from '@playwright/test'; + +export const keyCloakSignIn = async (page: Page) => { + const title = await page.locator('h1').first().textContent({ + timeout: 5000, + }); + + if (title?.includes('Sign in to your account')) { + await page.getByRole('textbox', { name: 'username' }).fill('user-e2e'); + await page.getByRole('textbox', { name: 'password' }).fill('password-e2e'); + + await page.click('input[type="submit"]'); + } +};