45 lines
1.4 KiB
TypeScript
45 lines
1.4 KiB
TypeScript
|
import { expect } from '@playwright/test'
|
||
|
import { setup } from '../shared-e2e'
|
||
|
import test from './fixtures/fixtures'
|
||
|
|
||
|
test.describe('help menu', () => {
|
||
|
test.beforeEach(setup)
|
||
|
|
||
|
test('you can open and close the menu', async ({ mainMenu, page }) => {
|
||
|
const { mainMenuButton, buttons } = mainMenu
|
||
|
const { editSubmenu, viewSubmenu, preferencesSubmenu } = mainMenu.subMenus
|
||
|
const submenus = [
|
||
|
{ name: 'preferences', submenu: preferencesSubmenu, button: buttons.preferences },
|
||
|
{ name: 'view', submenu: viewSubmenu, button: buttons.view },
|
||
|
{ name: 'edit', submenu: editSubmenu, button: buttons.edit },
|
||
|
]
|
||
|
|
||
|
await test.step('open main menu', async () => {
|
||
|
await expect(buttons.edit).toBeHidden()
|
||
|
await mainMenuButton.click()
|
||
|
await expect(buttons.edit).toBeVisible()
|
||
|
})
|
||
|
for (const submenu of submenus) {
|
||
|
await test.step(`hovering opens ${submenu.name} submenu`, async () => {
|
||
|
await expect(submenu.submenu[0]).toBeHidden()
|
||
|
await submenu.button.hover()
|
||
|
await expect(submenu.submenu[0]).toBeVisible()
|
||
|
})
|
||
|
}
|
||
|
await test.step('close main menu', async () => {
|
||
|
// close the menu by clicking the main menu button again
|
||
|
await mainMenuButton.click()
|
||
|
await expect(buttons.edit).toBeHidden()
|
||
|
// open the menu again
|
||
|
await mainMenuButton.click()
|
||
|
// click somewhere on the canvas to close the menu
|
||
|
await page.mouse.click(250, 150)
|
||
|
await expect(buttons.edit).toBeHidden()
|
||
|
})
|
||
|
})
|
||
|
|
||
|
// ...
|
||
|
// More tests here
|
||
|
// ...
|
||
|
})
|