From 042979a88757c8691a9f7e101c7dfc8618133452 Mon Sep 17 00:00:00 2001 From: Carine Dengler Date: Fri, 24 Nov 2023 18:03:27 +0100 Subject: [PATCH] tests: add test to check for buttons only visible to admin --- web/frontend/tests/integration/homepage.spec.ts | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/web/frontend/tests/integration/homepage.spec.ts b/web/frontend/tests/integration/homepage.spec.ts index 99177f3b8..7bcbbc2fe 100644 --- a/web/frontend/tests/integration/homepage.spec.ts +++ b/web/frontend/tests/integration/homepage.spec.ts @@ -17,6 +17,13 @@ async function login (page: any) { await login.click(); } +async function assertOnlyVisibleToAdmin(page: any, key: string) { + const element = page.getByRole('link', { name: i18n.t(key) }); + await expect(element).toBeHidden(); + await login(page); + await expect(element).toBeVisible(); +} + test('Assert homepage title', async({ page }) => { await page.goto(process.env.FRONT_END_URL); await expect(page).toHaveTitle(/D-Voting/); @@ -31,8 +38,10 @@ test('Assert login button', async({ page }) => { test('Assert create form button', async({ page }) => { await page.goto(process.env.FRONT_END_URL); - const createForm = page.getByRole('link', { name: i18n.t('navBarCreateForm') }); - await expect(createForm).toBeHidden(); - await login(page); - await expect(createForm).toBeVisible(); + await assertOnlyVisibleToAdmin(page, 'navBarCreateForm'); +}); + +test('Assert admin button', async({ page }) => { + await page.goto(process.env.FRONT_END_URL); + await assertOnlyVisibleToAdmin(page, 'navBarAdmin'); });