openpencil/tests/e2e/layers/scroll.spec.ts
2026-05-15 12:49:49 +03:00

43 lines
1.3 KiB
TypeScript

import { expect, test } from '@playwright/test'
import { CanvasHelper } from '#tests/helpers/canvas'
test('pages and layers panels scroll inside splitter panes', async ({ page }) => {
await page.goto('/')
const canvas = new CanvasHelper(page)
await canvas.waitForInit()
canvas.errors.length = 0
await page.evaluate(() => {
const store = window.openPencil?.getStore?.()
if (!store) throw new Error('OpenPencil store not initialized')
for (let i = 0; i < 40; i++) store.addPage(`Page ${i + 2}`)
const pageId = store.state.currentPageId
for (let i = 0; i < 80; i++) {
store.graph.createNode('RECTANGLE', pageId, {
name: `Layer ${i + 1}`,
x: i * 2,
y: i * 2,
width: 20,
height: 20
})
}
store.requestRender()
})
await canvas.waitForRender()
const pagesScroller = page.getByTestId('pages-scroll')
const layersScroller = page.getByTestId('layers-scroll')
await pagesScroller.evaluate((el) => {
el.scrollTop = el.scrollHeight
})
await layersScroller.evaluate((el) => {
el.scrollTop = el.scrollHeight
})
await expect.poll(() => pagesScroller.evaluate((el) => el.scrollTop)).toBeGreaterThan(0)
await expect.poll(() => layersScroller.evaluate((el) => el.scrollTop)).toBeGreaterThan(0)
canvas.assertNoErrors()
})