openpencil/tests/e2e/fixtures.ts
Danila Poyarkov 11e38b626a test(e2e): extract shared editor setup fixture
- useEditorSetup() / useEditorSetupWithClear() in tests/e2e/fixtures.ts
- Migrated 17 specs to shared fixture, removing ~300 lines of boilerplate
- Moved getSelectedNode/getSelectedNodes to shared store helpers
- Replaced inline getSelectedNode in 4 specs with shared import
- Test duplication: 329 → 308 clones (10.12% → 9.08%)
2026-05-16 16:19:03 +03:00

43 lines
790 B
TypeScript

import { test, expect, type Page } from '@playwright/test'
import { CanvasHelper } from '#tests/helpers/canvas'
export function useEditorSetup(url = '/') {
let page: Page
let canvas: CanvasHelper
test.describe.configure({ mode: 'serial' })
test.beforeAll(async ({ browser }) => {
page = await browser.newPage()
await page.goto(url)
canvas = new CanvasHelper(page)
await canvas.waitForInit()
})
test.afterAll(async () => {
await page.close()
})
return {
get page() {
return page
},
get canvas() {
return canvas
}
}
}
export function useEditorSetupWithClear(url = '/') {
const ctx = useEditorSetup(url)
test.beforeEach(async () => {
await ctx.canvas.clearCanvas()
})
return ctx
}
export { test, expect }