openpencil/tests/e2e/properties/visibility.spec.ts
Danila Poyarkov 680350cdcb test(e2e): extract shared editor setup and store helpers
- useEditorSetup() / useEditorSetupWithClear() in tests/e2e/fixtures.ts
- Migrated 15 simple specs to shared fixture
- Moved getSelectedNode/getSelectedNodes to tests/helpers/store.ts
- Replaced inline getSelectedNode in 4 specs
- Reverted 8 specs with custom beforeAll setup (not fixture-compatible)
- Test duplication in tests/: 329 → 307 clones (10.12% → 8.95%)
2026-05-16 16:55:34 +03:00

74 lines
3.1 KiB
TypeScript

import { expect, test, useEditorSetup } from '#tests/e2e/fixtures'
import { expectDefined } from '#tests/helpers/assert'
import { getSelectedNode } from '#tests/helpers/store'
const editor = useEditorSetup()
test('fill visibility supports repeat click and undo redo', async () => {
await editor.canvas.drawRect(120, 120, 120, 80)
await editor.canvas.waitForRender()
const fillButton = editor.page.getByTestId('fill-visibility-0')
await expect(fillButton).toBeVisible()
expect(expectDefined(await getSelectedNode(editor.page), 'selected node').fills[0]?.visible).toBe(true)
await fillButton.click()
await editor.canvas.waitForRender()
expect(expectDefined(await getSelectedNode(editor.page), 'selected node').fills[0]?.visible).toBe(false)
await fillButton.click()
await editor.canvas.waitForRender()
expect(expectDefined(await getSelectedNode(editor.page), 'selected node').fills[0]?.visible).toBe(true)
await editor.canvas.undo()
expect(expectDefined(await getSelectedNode(editor.page), 'selected node').fills[0]?.visible).toBe(false)
await editor.canvas.redo()
expect(expectDefined(await getSelectedNode(editor.page), 'selected node').fills[0]?.visible).toBe(true)
})
test('stroke visibility supports repeat click and undo redo', async () => {
await editor.page.getByTestId('stroke-section-add').click()
await editor.canvas.waitForRender()
const strokeButton = editor.page.getByTestId('stroke-visibility-0')
await expect(strokeButton).toBeVisible()
expect(expectDefined(await getSelectedNode(editor.page), 'selected node').strokes[0]?.visible).toBe(true)
await strokeButton.click()
await editor.canvas.waitForRender()
expect(expectDefined(await getSelectedNode(editor.page), 'selected node').strokes[0]?.visible).toBe(false)
await strokeButton.click()
await editor.canvas.waitForRender()
expect(expectDefined(await getSelectedNode(editor.page), 'selected node').strokes[0]?.visible).toBe(true)
await editor.canvas.undo()
expect(expectDefined(await getSelectedNode(editor.page), 'selected node').strokes[0]?.visible).toBe(false)
await editor.canvas.redo()
expect(expectDefined(await getSelectedNode(editor.page), 'selected node').strokes[0]?.visible).toBe(true)
})
test('appearance visibility supports repeat click and undo redo in one step', async () => {
const visibilityButton = editor.page.getByTestId('appearance-visibility')
await expect(visibilityButton).toBeVisible()
expect(expectDefined(await getSelectedNode(editor.page), 'selected node').visible).toBe(true)
await visibilityButton.click()
await editor.canvas.waitForRender()
expect(expectDefined(await getSelectedNode(editor.page), 'selected node').visible).toBe(false)
await visibilityButton.click()
await editor.canvas.waitForRender()
expect(expectDefined(await getSelectedNode(editor.page), 'selected node').visible).toBe(true)
await editor.canvas.undo()
expect(expectDefined(await getSelectedNode(editor.page), 'selected node').visible).toBe(false)
await editor.canvas.undo()
expect(expectDefined(await getSelectedNode(editor.page), 'selected node').visible).toBe(true)
})