Some checks failed
Deploy analytics worker / Deploy analytics worker to ${{ (github.ref == 'refs/heads/production' && 'production') || (github.ref == 'refs/heads/main' && 'staging') || 'preview' }} (push) Failing after 1s
i18n upload strings / Upload latest strings (push) Failing after 1s
Deploy bemo / Deploy bemo to ${{ (github.ref == 'refs/heads/bemo-production' && 'production') || (github.ref == 'refs/heads/main' && 'staging') || 'preview' }} (push) Failing after 1s
Deploy grafana resources / ${{ github.event_name == 'push' && 'Deploy grafana resources' || 'Validate grafana resources (dry run)' }} (push) Failing after 0s
End to end tests (dotcom) / Check for relevant changes (push) Failing after 0s
End to end tests (examples) / Check for relevant changes (push) Failing after 0s
End to end tests (mermaid readability) / Check for relevant changes (push) Failing after 1s
End to end tests (perf) / Check for relevant changes (push) Failing after 0s
Publish editor extensions / Publish editor extensions (push) Failing after 1s
Publish SDK packages / Remove the publish-packages label (push) Has been skipped
Checks / Tests & checks (push) Has been cancelled
Checks / Build all projects (push) Has been cancelled
Deploy templates / Deploy templates (push) Has been cancelled
End to end tests (dotcom) / End to end tests (dotcom) (push) Has been cancelled
End to end tests (mermaid readability) / End to end tests (mermaid readability) (push) Has been cancelled
End to end tests (perf) / End to end tests (perf) (push) Has been cancelled
Deploy .com / Deploy dotcom to ${{ (github.ref == 'refs/heads/production' && 'production') || (github.ref == 'refs/heads/main' && 'staging') || 'preview' }} (push) Has been cancelled
End to end tests (examples) / End to end tests (examples) (push) Has been cancelled
Publish SDK packages / Publish SDK packages (push) Has been cancelled
Publish SDK packages / Tell user released version (push) Has been cancelled
Publish SDK packages / Publishes code templates to separate repositories (push) Has been cancelled
Publish SDK packages / Deploys the template demos with the new SDK version (push) Has been cancelled
46 lines
1.7 KiB
TypeScript
46 lines
1.7 KiB
TypeScript
import { Locator, Page, expect } from '@playwright/test'
|
|
|
|
export class Toolbar {
|
|
readonly toolLock: Locator
|
|
readonly moreToolsButton: Locator
|
|
readonly moreToolsPopover: Locator
|
|
readonly mobileStylesButton: Locator
|
|
readonly tools: { [key: string]: Locator }
|
|
readonly popOverTools: { [key: string]: Locator }
|
|
|
|
constructor(public readonly page: Page) {
|
|
this.page = page
|
|
this.toolLock = this.page.getByTestId('tool-lock')
|
|
this.moreToolsButton = this.page.getByTestId('tools.more-button')
|
|
this.moreToolsPopover = this.page.getByTestId('tools.more-content')
|
|
this.mobileStylesButton = this.page.getByTestId('mobile-styles.button')
|
|
this.tools = {
|
|
select: this.page.getByTestId('tools.select'),
|
|
draw: this.page.getByTestId('tools.draw'),
|
|
text: this.page.getByTestId('tools.text'),
|
|
arrow: this.page.getByTestId('tools.arrow'),
|
|
cloud: this.page.getByTestId('tools.cloud'),
|
|
eraser: this.page.getByTestId('tools.eraser'),
|
|
rectangle: this.page.getByTestId('tools.rectangle'),
|
|
hand: this.page.getByTestId('tools.hand'),
|
|
}
|
|
this.popOverTools = {
|
|
popoverCloud: this.page.getByTestId('tools.more.cloud'),
|
|
popoverFrame: this.page.getByTestId('tools.more.frame'),
|
|
popoverRectangle: this.page.getByTestId('tools.more.rectangle'),
|
|
}
|
|
}
|
|
async clickTool(tool: Locator) {
|
|
await tool.click()
|
|
}
|
|
async isSelected(tool: Locator) {
|
|
// pseudo elements aren't exposed to the DOM, but we can check the color as a proxy
|
|
const expectedColor = 'rgb(255, 255, 255)'
|
|
await expect(tool).toHaveCSS('color', expectedColor)
|
|
}
|
|
async isNotSelected(tool: Locator) {
|
|
const expectedColor = 'rgb(46, 46, 46)'
|
|
await expect(tool).toHaveCSS('color', expectedColor)
|
|
}
|
|
}
|