openpencil/tests/e2e/panels/basic.spec.ts
Danila Poyarkov c3f5189f8f style: tighten import grouping
- Configure oxfmt custom import groups for workspace, app, package, and test aliases
- Keep type imports grouped with their matching source category instead of one global tail group
- Expand the format script to cover formatter config, Vite files, and scripts
2026-05-06 02:22:08 +03:00

73 lines
2.1 KiB
TypeScript

import { test, expect, 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('/')
canvas = new CanvasHelper(page)
await canvas.waitForInit()
})
test.afterAll(async () => {
await page.close()
})
test('layers panel resize increases width', async () => {
const panel = page.locator('[data-test-id="layers-panel"]')
const before = await panel.boundingBox()
expect(before).not.toBeNull()
const handle = page.locator('[data-test-id="left-splitter-handle"]')
const handleBox = await handle.boundingBox()
expect(handleBox).not.toBeNull()
const cx = handleBox!.x + handleBox!.width / 2
const cy = handleBox!.y + handleBox!.height / 2
await page.mouse.move(cx, cy)
await page.mouse.down()
await page.mouse.move(cx + 80, cy, { steps: 10 })
await page.mouse.up()
await canvas.waitForRender()
const after = await panel.boundingBox()
expect(after!.width).toBeGreaterThan(before!.width + 40)
canvas.assertNoErrors()
})
test('panel width persists after page reload', async () => {
// Allow Reka's auto-save debounce to flush before recording the width
await page.waitForTimeout(300)
const recordedWidth = (await page.locator('[data-test-id="layers-panel"]').boundingBox())!.width
await page.reload()
canvas = new CanvasHelper(page)
await canvas.waitForInit()
const after = await page.locator('[data-test-id="layers-panel"]').boundingBox()
expect(Math.abs(after!.width - recordedWidth)).toBeLessThanOrEqual(2)
canvas.assertNoErrors()
})
test('Cmd+Backslash hides panels', async () => {
await page.keyboard.press('Meta+\\')
await canvas.waitForRender()
await expect(page.locator('[data-test-id="layers-panel"]')).not.toBeVisible()
canvas.assertNoErrors()
})
test('Cmd+Backslash shows panels again', async () => {
await page.keyboard.press('Meta+\\')
await canvas.waitForRender()
await expect(page.locator('[data-test-id="layers-panel"]')).toBeVisible()
canvas.assertNoErrors()
})