Skip to content

Commit

Permalink
[CP-2918] [API Device][Multidevice] Switching devices (1st Kompakt, 2…
Browse files Browse the repository at this point in the history
…nd Kompakt) (#1971)
  • Loading branch information
robertmudi authored and lkowalczyk87 committed Aug 7, 2024
1 parent 3babbd3 commit 51cc5c4
Show file tree
Hide file tree
Showing 8 changed files with 265 additions and 40 deletions.
22 changes: 22 additions & 0 deletions apps/mudita-center-e2e/src/page-objects/drawer.page.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
/**
* Copyright (c) Mudita sp. z o.o. All rights reserved.
* For licensing, see https://github.com/mudita/mudita-center/blob/master/LICENSE.md
*/

import Page from "./page"

export class DrawerPage extends Page {
public get deviceSelectDrawer() {
return $('[data-testid="device-select-drawer-content"]')
}

public getDeviceOnDrawer(serialNumber: string) {
return $(`//*[@data-testid="drawer-device-wrapper-${serialNumber}"]`)
}

public get deviceImageOnDrawer() {
return $('[data-testid="drawer-device-image"]')
}
}

export default new DrawerPage()
24 changes: 17 additions & 7 deletions apps/mudita-center-e2e/src/page-objects/overview-kompakt.page.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,15 +15,19 @@ class OverviewKompaktPage extends OverviewPage {
}

public get sarInformationPopup() {
return $("/html/body/div[10]/div/div")
return $('[data-testid="button-text_sarmodal-button"]')
}

public get sarInformationPopupCloseButton() {
return $('[data-testid="icon-close"]')
}

public get backArrowButton() {
return $('[data-testid="icon-ArrowLongLeft"]')
}

public get backupInfo() {
return $(`//div[@componentkey="backupbackup-info"]/p`)
return $(`//div[@data-testid="block-box-backup"]//p`)
}

public get serialNumberLabel() {
Expand All @@ -42,20 +46,26 @@ class OverviewKompaktPage extends OverviewPage {
return $('[data-testid="icon-network-signal-2"]')
}

public getStatusRow(rowIndex: number) {
return $(
`(//div[@data-testid="block-box-status"]/..//h4[@data-testid="icon-text"])[${rowIndex}]`
)
}

public get kompaktNetworkName() {
return $('[data-testid="icon-text"]')
return this.getStatusRow(2)
}

public get kompaktBatteryIcon() {
return $('//div[@data-testid="icon-battery-charging-2"]')
return $('//div[@data-testid="icon-battery-charging-5"]')
}

public get kompaktBatteryLevelValue() {
return $('//h3[text()="Status"]/..//h4[@data-testid="icon-text"]')
return this.getStatusRow(1)
}

public get kompaktSimCard1() {
return $('[data-testid="icon-subtext"]')
public get kompaktSimCard1Subtext() {
return this.getStatusRow(2).$(`//*[@data-testid="icon-subtext"]`)
}

public get kompaktOsVersion() {
Expand Down
7 changes: 5 additions & 2 deletions apps/mudita-center-e2e/src/page-objects/overview.page.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
* For licensing, see https://github.com/mudita/mudita-center/blob/master/LICENSE.md
*/

import { ChainablePromiseElement } from "webdriverio"
import Page from "./page"

export class OverviewPage extends Page {
Expand Down Expand Up @@ -56,7 +55,7 @@ export class OverviewPage extends Page {
}

public get createBackupButton() {
return $("p*=Create backup")
return $('//button[@type="button" and .//span[text()="Create backup"]]')
}

public get restoreBackupButton() {
Expand Down Expand Up @@ -141,6 +140,10 @@ export class OverviewPage extends Page {
public get muditaOSVersion() {
return $('[data-testid="os-version"]')
}

public get selectConnectedDevices() {
return $('[data-testid="icon-DotsInBox"]')
}
}

export default new OverviewPage()
63 changes: 34 additions & 29 deletions apps/mudita-center-e2e/src/specs/overview/kompakt-overview.ts
Original file line number Diff line number Diff line change
Expand Up @@ -42,16 +42,17 @@ describe("E2E mock sample - overview view", () => {

it("Verify Overview Page", async () => {
const kompaktImage = await OverviewKompaktPage.kompaktImage
await expect(kompaktImage).toBeDisplayed
console.log(kompaktImage)
await expect(kompaktImage).toBeDisplayed()
await expect(kompaktImage).toHaveAttribute("src", kompaktImageRegex)

const kompaktOsVersion = await OverviewKompaktPage.kompaktOsVersion
await expect(kompaktOsVersion).toBeDisplayed
await expect(kompaktOsVersion).toBeDisplayed()
await expect(kompaktOsVersion).toHaveText("Mudita OS")

const kompaktOsVersionLabel =
await OverviewKompaktPage.kompaktOsVersionLabel
await expect(kompaktOsVersionLabel).toBeDisplayed
await expect(kompaktOsVersionLabel).toBeDisplayed()
await expect(kompaktOsVersionLabel).toHaveText("Current version:")

const serialNumberLabel = await OverviewKompaktPage.serialNumberLabel
const serialNumberValue = await OverviewKompaktPage.serialNumberValue
Expand All @@ -61,55 +62,59 @@ describe("E2E mock sample - overview view", () => {
)

const aboutYourDevice = await OverviewKompaktPage.aboutYourDevice
await expect(aboutYourDevice).toBeDisplayed
console.log(aboutYourDevice)
await expect(aboutYourDevice).toBeDisplayed()
await expect(aboutYourDevice).toBeClickable
await aboutYourDevice.click()

const sarInformationButtonKompakt =
await OverviewKompaktPage.sarInformationButtonKompakt
const sarInformationPopup = await OverviewKompaktPage.sarInformationPopup
await expect(sarInformationButtonKompakt).toBeDisplayed
await expect(sarInformationButtonKompakt).toBeDisplayed()
await sarInformationButtonKompakt.click()
await expect(sarInformationPopup).toBeDisplayed
await expect(sarInformationPopup).toBeDisplayed()

const sarInformationPopupCloseButton =
await OverviewKompaktPage.sarInformationPopupCloseButton
await sarInformationPopupCloseButton.waitForClickable()
await sarInformationPopupCloseButton.click()

const backArrowButton = OverviewKompaktPage.backArrowButton
await backArrowButton.waitForClickable()
await backArrowButton.click()

const createBackupButton = await OverviewPage.createBackupButton
await expect(createBackupButton).toBeDisplayed
await expect(createBackupButton).toBeClickable
await expect(createBackupButton).toBeDisplayed()
await expect(createBackupButton).toBeClickable()

const backupInfo = await OverviewKompaktPage.backupInfo
await expect(backupInfo).toBeDisplayed
const str: string =
"\tYou haven’t backed up your device yet.\n Create a backup file to protect against data loss.\n"
const backupInfoText: string = str.trim()
await expect(backupInfo).toBeDisplayed()
await expect(backupInfo).toHaveTextContaining(
"You haven’t backed up your device yet.\nCreate a backup file to protect against data loss."
)

const kompaktBatteryIcon = await OverviewKompaktPage.kompaktBatteryIcon
await expect(kompaktBatteryIcon).toBeDisplayed
await expect(kompaktBatteryIcon).toBeDisplayed()

const kompaktBatteryLevelValue =
await OverviewKompaktPage.kompaktBatteryLevelValue
await expect(kompaktBatteryLevelValue).toBeDisplayed
const batteryValNum: string = "100%"
const batteryValue: string = batteryValNum
await expect(kompaktBatteryLevelValue).toBeDisplayed()
await expect(kompaktBatteryLevelValue).toHaveText("100%")

const kompaktNetworkName = await OverviewKompaktPage.kompaktNetworkName
await expect(kompaktNetworkName).toBeDisplayed
const strNetwork: string = "T-Mobile"
const networkName: string = strNetwork
await expect(kompaktNetworkName).toBeDisplayed()
await expect(kompaktNetworkName).toHaveText("T-Mobile")

const kompaktSignalIcon = await OverviewKompaktPage.kompaktSignalIcon
await expect(kompaktSignalIcon).toBeDisplayed
const strSignal: string = "network-signal-2"
const signalValue: string = strSignal

const kompaktSimCard1 = await OverviewKompaktPage.kompaktSimCard1
await expect(kompaktSimCard1).toBeDisplayed
const sim1: string = "SIM 1"
const simInfo: string = sim1
await expect(kompaktSignalIcon).toBeDisplayed()
await expect(kompaktSignalIcon).toHaveAttributeContaining(
"data-testid",
"icon-network-signal-2"
)

const kompaktSimCard1Subtext =
await OverviewKompaktPage.kompaktSimCard1Subtext
await expect(kompaktSimCard1Subtext).toBeDisplayed()
await expect(kompaktSimCard1Subtext).toHaveText("SIM 1")
})

it("Click between Tabs and check them", async () => {
Expand Down
149 changes: 149 additions & 0 deletions apps/mudita-center-e2e/src/specs/overview/kompakt-switching-devices.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,149 @@
import { E2EMockClient } from "../../../../../libs/e2e-mock/client/src"
import {
overviewDataWithOneSimCard,
overviewDataWithOneSimCard2nd,
} from "../../../../../libs/e2e-mock/responses/src"
import OverviewKompaktPage from "../../page-objects/overview-kompakt.page"
import HomePage from "../../page-objects/home.page"
import { kompaktImageRegex } from "../../consts/regex-const"
import overviewPage from "../../page-objects/overview.page"
import drawerPage from "../../page-objects/drawer.page"

describe("Kompakt switching devices", () => {
const firstSerialNumber = "KOM1234567890"
const secondSerialNumber = "KOM1234567892"

before(async () => {
E2EMockClient.connect()
//wait for a connection to be established
await browser.waitUntil(() => {
return E2EMockClient.checkConnection()
})
})

after(() => {
E2EMockClient.stopServer()
E2EMockClient.disconnect()
})

it("Connect device", async () => {
E2EMockClient.mockResponse({
path: "path-1",
body: overviewDataWithOneSimCard,
endpoint: "FEATURE_DATA",
method: "GET",
status: 200,
})
E2EMockClient.addDevice({
path: "path-1",
serialNumber: firstSerialNumber,
})

await browser.pause(6000)
const menuItem = await $(`//a[@href="#/generic/mc-overview"]`)

await menuItem.waitForDisplayed({ timeout: 10000 })
await expect(menuItem).toBeDisplayed()
})

it("Verify Overview Page", async () => {
const kompaktImage = await OverviewKompaktPage.kompaktImage
await expect(kompaktImage).toBeDisplayed()
await expect(kompaktImage).toHaveAttribute("src", kompaktImageRegex)

const kompaktOsVersion = await OverviewKompaktPage.kompaktOsVersion
await expect(kompaktOsVersion).toBeDisplayed()

const kompaktSimCard1Subtext =
await OverviewKompaktPage.kompaktSimCard1Subtext
await expect(kompaktSimCard1Subtext).toHaveText("SIM 1")

const kompaktNetworkName = await OverviewKompaktPage.kompaktNetworkName
await expect(kompaktNetworkName).toBeDisplayed()
await expect(kompaktNetworkName).toHaveText("T-Mobile")

const kompaktBatteryLevelValue =
await OverviewKompaktPage.kompaktBatteryLevelValue
await expect(kompaktBatteryLevelValue).toBeDisplayed()
await expect(kompaktBatteryLevelValue).toHaveText("100%")
})

it("Connect 2nd device", async () => {
E2EMockClient.mockResponse({
path: "path-2",
body: overviewDataWithOneSimCard2nd,
endpoint: "FEATURE_DATA",
method: "GET",
status: 200,
})
E2EMockClient.addDevice({
path: "path-2",
serialNumber: secondSerialNumber,
})

await browser.pause(6000)
})

it("Check Drawer Modal and Switch to 2nd device", async () => {
const deviceSelectDrawer = await drawerPage.deviceSelectDrawer
await expect(deviceSelectDrawer).toBeDisplayed()

const deviceImageOnDrawer = await drawerPage.deviceImageOnDrawer
await expect(deviceImageOnDrawer).toBeDisplayed()

const firstDeviceOnDrawer = await drawerPage.getDeviceOnDrawer(
firstSerialNumber
)
await expect(firstDeviceOnDrawer).toBeDisplayed()
const secondDeviceOnDrawer = await drawerPage.getDeviceOnDrawer(
secondSerialNumber
)
await expect(secondDeviceOnDrawer).toBeDisplayed()
await secondDeviceOnDrawer.waitForClickable()
await secondDeviceOnDrawer.click()
})

it("Verify Overview Page for 2nd device", async () => {
const kompaktImage = await OverviewKompaktPage.kompaktImage
await expect(kompaktImage).toBeDisplayed()
await expect(kompaktImage).toHaveAttribute("src", kompaktImageRegex)

const kompaktOsVersion = await OverviewKompaktPage.kompaktOsVersion
await expect(kompaktOsVersion).toBeDisplayed()

const kompaktSimCard1Subtext =
await OverviewKompaktPage.kompaktSimCard1Subtext
await expect(kompaktSimCard1Subtext).toHaveText("SIM 1")

const kompaktNetworkName = await OverviewKompaktPage.kompaktNetworkName
await expect(kompaktNetworkName).toBeDisplayed()
await expect(kompaktNetworkName).toHaveText("Play")

const kompaktBatteryLevelValue =
await OverviewKompaktPage.kompaktBatteryLevelValue
await expect(kompaktBatteryLevelValue).toBeDisplayed()
await expect(kompaktBatteryLevelValue).toHaveText("40%")
})

it("Verify Select Connected Devices, click on it and select 1st Kompakt", async () => {
const selectConnectedDevices = await overviewPage.selectConnectedDevices
await selectConnectedDevices.waitForClickable()
await expect(selectConnectedDevices).toHaveText("2")
await selectConnectedDevices.click()

const firstDeviceOnDrawer = await drawerPage.getDeviceOnDrawer(
firstSerialNumber
)
await expect(firstDeviceOnDrawer).toBeDisplayed()
await firstDeviceOnDrawer.waitForClickable()
await firstDeviceOnDrawer.click()
})

it("Disconnect the devices and check if Welcome Page is present", async () => {
E2EMockClient.removeDevice("path-1")
E2EMockClient.removeDevice("path-2")

const homeHeader = await HomePage.homeHeader
await homeHeader.waitForDisplayed()
})
})
Original file line number Diff line number Diff line change
Expand Up @@ -20,5 +20,6 @@ export enum TestFilesPaths {
helpWindowCheckOfflineTest = "src/specs/help/help-window-check-offline.e2e.ts",
mcHomePageForceUpdateTest = "src/specs/overview/e2e-mock-mc-force-update-available.e2e.ts",
kompaktOverview = "src/specs/overview/kompakt-overview.ts",
kompaktSwitchingDevices = "src/specs/overview/kompakt-switching-devices.ts",
}
export const toRelativePath = (path: string) => `./${path}`
Loading

0 comments on commit 51cc5c4

Please sign in to comment.