64 lines
3.4 KiB
TypeScript
64 lines
3.4 KiB
TypeScript
|
import { Locator, Page } from '@playwright/test'
|
||
|
|
||
|
export class MainMenu {
|
||
|
readonly mainMenuButton: Locator
|
||
|
readonly buttons: { [key: string]: Locator }
|
||
|
readonly subMenus: { [key: string]: Locator[] }
|
||
|
constructor(public readonly page: Page) {
|
||
|
this.page = page
|
||
|
this.mainMenuButton = this.page.getByTestId('main-menu.button')
|
||
|
this.buttons = {
|
||
|
edit: this.page.getByRole('menuitem').getByText('Edit'),
|
||
|
object: this.page.getByRole('menuitem').getByText('Object'),
|
||
|
view: this.page.getByRole('menuitem').getByText('View'),
|
||
|
insertEmbed: this.page.getByRole('menuitem').getByText('Insert Embed'),
|
||
|
uploadMedia: this.page.getByRole('menuitem').getByText('Upload Media'),
|
||
|
preferences: this.page.getByRole('menuitem').getByText('Preferences'),
|
||
|
}
|
||
|
this.subMenus = {
|
||
|
editSubmenu: [
|
||
|
this.page.getByTestId('main-menu-sub.edit-content').getByText('Undo'),
|
||
|
this.page.getByTestId('main-menu-sub.edit-content').getByText('Redo'),
|
||
|
this.page.getByTestId('main-menu-sub.edit-content').getByText('Cut'),
|
||
|
this.page.getByTestId('main-menu-sub.edit-content').getByText('Copy'),
|
||
|
this.page.getByTestId('main-menu-sub.edit-content').getByText('Copy as'),
|
||
|
this.page.getByTestId('main-menu-sub.edit-content').getByText('Duplicate'),
|
||
|
this.page.getByTestId('main-menu-sub.edit-content').getByText('Paste'),
|
||
|
this.page.getByTestId('main-menu-sub.edit-content').getByText('Delete'),
|
||
|
this.page.getByTestId('main-menu-sub.edit-content').getByText('Select all'),
|
||
|
],
|
||
|
objectSubmenu: [
|
||
|
this.page.getByRole('menuitem').getByText('Export as'),
|
||
|
this.page.getByRole('menuitem').getByText('Group'),
|
||
|
this.page.getByRole('menuitem').getByText('Ungroup'),
|
||
|
this.page.getByRole('menuitem').getByText('Remove frame'),
|
||
|
this.page.getByRole('menuitem').getByText('Fit to content'),
|
||
|
this.page.getByRole('menuitem').getByText('Toggle auto size'),
|
||
|
this.page.getByRole('menuitem').getByText('Edit link'),
|
||
|
this.page.getByRole('menuitem').getByText('Convert to Bookmark'),
|
||
|
this.page.getByRole('menuitem').getByText('Convert to Embed'),
|
||
|
this.page.getByRole('menuitem').getByText('Toggle locked'),
|
||
|
this.page.getByRole('menuitem').getByText('Unlock all'),
|
||
|
],
|
||
|
viewSubmenu: [
|
||
|
this.page.getByTestId('main-menu-sub.view-content').getByText('Zoom in'),
|
||
|
this.page.getByTestId('main-menu-sub.view-content').getByText('Zoom out'),
|
||
|
this.page.getByTestId('main-menu-sub.view-content').getByText('Zoom to 100%'),
|
||
|
this.page.getByTestId('main-menu-sub.view-content').getByText('Zoom to fit'),
|
||
|
this.page.getByTestId('main-menu-sub.view-content').getByText('Zoom to selection'),
|
||
|
],
|
||
|
preferencesSubmenu: [
|
||
|
this.page.getByTestId('main-menu-sub.preferences-content').getByText('Always snap'),
|
||
|
this.page.getByTestId('main-menu-sub.preferences-content').getByText('Tool lock'),
|
||
|
this.page.getByTestId('main-menu-sub.preferences-content').getByText('Show grid'),
|
||
|
this.page.getByTestId('main-menu-sub.preferences-content').getByText('Dark mode'),
|
||
|
this.page.getByTestId('main-menu-sub.preferences-content').getByText('Focus mode'),
|
||
|
this.page.getByTestId('main-menu-sub.preferences-content').getByText('Edge scrolling'),
|
||
|
this.page.getByTestId('main-menu-sub.preferences-content').getByText('Reduce motion'),
|
||
|
this.page.getByTestId('main-menu-sub.preferences-content').getByText('Debug mode'),
|
||
|
this.page.getByTestId('main-menu-sub.preferences-content').getByText('Language'),
|
||
|
],
|
||
|
}
|
||
|
}
|
||
|
}
|