1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- import { Page, _electron as electron } from 'playwright'
- import { ElectronApplication } from 'playwright-core'
- import { test, expect } from '@playwright/test'
- let appWindow: Page
- let appElectron: ElectronApplication
- function waiting(milliseconds: number) {
- return new Promise((resolve) => setTimeout(resolve, milliseconds))
- }
- function isElementVisible(selector: string, waitingMilliseconds = 100) {
- return new Promise((resolve) => {
- setTimeout(async () => {
- expect(await appWindow.isVisible(selector), `Confirm selector '${selector}' is visible`).toBe(
- true
- )
- resolve(true)
- }, waitingMilliseconds)
- })
- }
- test.beforeAll(async () => {
- // Open Electron app from build directory
- appElectron = await electron.launch({ args: ['dist/main/index.js'] })
- appWindow = await appElectron.firstWindow()
- await appWindow.waitForEvent('load')
- })
- test('Environment check', async () => {
- const isPackaged = await appElectron.evaluate(async ({ app }) => {
- return app.isPackaged
- })
- expect(isPackaged, 'Confirm that is in development mode').toBe(false)
- })
- test('Document element check', async () => {
- await isElementVisible('.v-toolbar__content')
- await isElementVisible('#main-logo')
- await isElementVisible('#select-language')
- })
- test('Counter button click check', async () => {
- await appWindow.click('#btn-counter', { clickCount: 10, delay: 50 })
- const counterValueElement = await appWindow.$('#counter-badge .v-badge__badge')
- expect(
- await appWindow.evaluate((element) => element.innerHTML, counterValueElement),
- 'Confirm counter value is same'
- ).toBe('10')
- })
- test.afterAll(async () => {
- await waiting(2000)
- await appElectron.close()
- })
|