From 34017fe7ab7cceb8ae217c5209cf4689b2121516 Mon Sep 17 00:00:00 2001 From: piotrk39 Date: Fri, 18 Oct 2024 12:33:03 +0200 Subject: [PATCH 1/4] Add assertion for about button --- tests/e2e/Pages/ChatComponent.ts | 24 ++++++++ ...ChatActionButtonsActiveInNoTrigger.spec.ts | 59 +++++++++++++++++++ 2 files changed, 83 insertions(+) create mode 100644 tests/e2e/tests/ChatSection/AllChatActionButtonsActiveInNoTrigger.spec.ts diff --git a/tests/e2e/Pages/ChatComponent.ts b/tests/e2e/Pages/ChatComponent.ts index 2c995f7f5..d9b0d6aa3 100644 --- a/tests/e2e/Pages/ChatComponent.ts +++ b/tests/e2e/Pages/ChatComponent.ts @@ -70,6 +70,30 @@ class ChatComponent extends DashboardPage { await expect(this.exportViewButton).toBeVisible(); await expect(this.triggerLogButton).toBeVisible(); } + + async clickAndAssertAboutButton() { + // Listen for new page event + const [newPage] = await Promise.all([ + this.page.context().waitForEvent('page'), + await this.chatAboutButton.click(), + ]); + + // Assert new page is opened + expect(newPage).not.toBeNull(); + await newPage.close(); + } + + async clickAndAssertGuideButton() { + await this.chatGuideButton.click(); + } + + async clickAndAssertExportViewButton() { + await this.exportViewButton.click(); + } + + async clickAndAssertTriggerLogButton() { + await this.triggerLogButton.click(); + } } export default ChatComponent; diff --git a/tests/e2e/tests/ChatSection/AllChatActionButtonsActiveInNoTrigger.spec.ts b/tests/e2e/tests/ChatSection/AllChatActionButtonsActiveInNoTrigger.spec.ts new file mode 100644 index 000000000..79d3108cb --- /dev/null +++ b/tests/e2e/tests/ChatSection/AllChatActionButtonsActiveInNoTrigger.spec.ts @@ -0,0 +1,59 @@ +import { test } from '@playwright/test'; +import ChatComponent from 'Pages/ChatComponent'; +import DashboardPage from 'Pages/DashboardPage'; +import UserStateComponent from 'Pages/UserStateComponent'; +import { qase } from 'playwright-qase-reporter'; +import { NoTriggerDataSet } from 'testData/testData.enum'; + +import { + getAccessToken, + mockFloods, + resetDB, +} from '../../helpers/utility.helper'; +import LoginPage from '../../Pages/LoginPage'; + +let accessToken: string; + +test.beforeEach(async ({ page }) => { + // Login + const loginPage = new LoginPage(page); + + accessToken = await getAccessToken(); + await resetDB(accessToken); + // We should maybe create one mock for all different disaster types for now we can just use floods + await mockFloods( + NoTriggerDataSet.NoTriggerScenario, + NoTriggerDataSet.CountryCode, + accessToken, + ); + + await page.goto('/'); + await loginPage.login( + NoTriggerDataSet.UserMail, + NoTriggerDataSet.UserPassword, + ); +}); + +test( + qase( + 11, + 'All Chat section action buttons can be selected in no-trigger mode', + ), + async ({ page }) => { + const dashboard = new DashboardPage(page); + const userState = new UserStateComponent(page); + const chat = new ChatComponent(page); + + // Navigate to disaster type the data was mocked for + await dashboard.navigateToFloodDisasterType(); + // Assertions + await userState.headerComponentIsVisible({ + countryName: NoTriggerDataSet.CountryName, + }); + await chat.allChatButtonsArePresent(); + await chat.clickAndAssertAboutButton(); + await chat.clickAndAssertGuideButton(); + // await chat.clickAndAssertExportViewButton(); + // await chat.clickAndAssertTriggerLogButton(); + }, +); From 64ca9a4765955f1314e809920360cd9c3edee558 Mon Sep 17 00:00:00 2001 From: piotrk39 Date: Fri, 18 Oct 2024 13:02:43 +0200 Subject: [PATCH 2/4] Add actions and assertions for ibf guide popover --- .../ibf-guide-popover.component.html | 5 ++-- tests/e2e/Pages/ChatComponent.ts | 25 +++++++++++++++++++ ...ChatActionButtonsActiveInNoTrigger.spec.ts | 2 +- 3 files changed, 29 insertions(+), 3 deletions(-) diff --git a/interfaces/IBF-dashboard/src/app/components/ibf-guide-popover/ibf-guide-popover.component.html b/interfaces/IBF-dashboard/src/app/components/ibf-guide-popover/ibf-guide-popover.component.html index ceebcc1af..ec8cebcd8 100644 --- a/interfaces/IBF-dashboard/src/app/components/ibf-guide-popover/ibf-guide-popover.component.html +++ b/interfaces/IBF-dashboard/src/app/components/ibf-guide-popover/ibf-guide-popover.component.html @@ -1,16 +1,17 @@ - {{ + {{ 'ibf-guide-component.title' | translate }} - +

- Export View + Export View

In order to export the current view of the IBF-dashboard, you will need to take a screenshot.
- + - + - + Date: Fri, 18 Oct 2024 13:47:38 +0200 Subject: [PATCH 4/4] Add triggerButton assertion and remove console log --- tests/e2e/Pages/ChatComponent.ts | 13 ++++++++++--- .../AllChatActionButtonsActiveInNoTrigger.spec.ts | 4 +++- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/tests/e2e/Pages/ChatComponent.ts b/tests/e2e/Pages/ChatComponent.ts index e686a80b9..c3479d664 100644 --- a/tests/e2e/Pages/ChatComponent.ts +++ b/tests/e2e/Pages/ChatComponent.ts @@ -130,7 +130,6 @@ class ChatComponent extends DashboardPage { const platform = os.platform(); // Assert Popover Title and link are visible - console.log(`Platform: ${platform}`); if (platform === 'win32') { await expect(this.windowsOsLink).toBeVisible(); } else if (platform === 'darwin') { @@ -143,8 +142,16 @@ class ChatComponent extends DashboardPage { await this.exportViewCloseButton.click(); } - async clickAndAssertTriggerLogButton() { - await this.triggerLogButton.click(); + async clickAndAssertTriggerLogButton({ url }: { url: string }) { + // Open Trigger Log + const [newPage] = await Promise.all([ + this.page.context().waitForEvent('page'), + await this.triggerLogButton.click(), + ]); + + // Assert new page is opened + await expect(newPage).toHaveURL(url); + await newPage.close(); } } diff --git a/tests/e2e/tests/ChatSection/AllChatActionButtonsActiveInNoTrigger.spec.ts b/tests/e2e/tests/ChatSection/AllChatActionButtonsActiveInNoTrigger.spec.ts index 1e7215d60..ee9804bac 100644 --- a/tests/e2e/tests/ChatSection/AllChatActionButtonsActiveInNoTrigger.spec.ts +++ b/tests/e2e/tests/ChatSection/AllChatActionButtonsActiveInNoTrigger.spec.ts @@ -54,6 +54,8 @@ test( await chat.clickAndAssertAboutButton(); await chat.clickAndAssertGuideButton(); await chat.clickAndAssertExportViewButton(); - await chat.clickAndAssertTriggerLogButton(); + await chat.clickAndAssertTriggerLogButton({ + url: `/log?countryCodeISO3=${NoTriggerDataSet.CountryCode}&disasterType=floods`, + }); }, );