openpencil/tests/e2e/tools/section.spec.ts
Danila Poyarkov 8ec70330b4 chore(lint): centralize OpenPencil window API
- Route browser globals through src/app/window-api.ts instead of private __OPEN_PENCIL fields
- Move E2E tests to the public window.openPencil test API
- Add an oxlint rule banning direct window.__OPEN_PENCIL* access
2026-05-06 10:38:03 +03:00

41 lines
1,018 B
TypeScript

import { expect, test, type Page } from '@playwright/test'
import { CanvasHelper } from '#tests/helpers/canvas'
let page: Page
let canvas: CanvasHelper
test.describe.configure({ mode: 'serial' })
test.beforeAll(async ({ browser }) => {
page = await browser.newPage()
await page.goto('/?test')
canvas = new CanvasHelper(page)
await canvas.waitForInit()
})
test.afterAll(async () => {
await page.close()
})
test.beforeEach(async () => {
await canvas.clearCanvas()
})
test('draw section in full editor without browser errors', async () => {
await canvas.drawSection(100, 100, 240, 160)
await expect(page.locator('[data-test-id="design-node-header"]')).toContainText('SECTION')
await expect
.poll(async () => {
return page.evaluate(() => {
const store = window.openPencil?.store
const selectedId = [...store.state.selectedIds][0]
return selectedId ? store.graph.getNode(selectedId)?.type : null
})
})
.toBe('SECTION')
canvas.assertNoErrors()
})