diff --git a/tests/e2e/create-shapes.spec.ts b/tests/e2e/create-shapes.spec.ts index 10d0d2d4f..c143ef31f 100644 --- a/tests/e2e/create-shapes.spec.ts +++ b/tests/e2e/create-shapes.spec.ts @@ -1,47 +1,57 @@ -import { test, expect } from '@playwright/test' +import { test, expect, type Page } from '@playwright/test' import { CanvasHelper } from '../helpers/canvas' -test.describe('create shapes', () => { - let canvas: CanvasHelper +let page: Page +let canvas: CanvasHelper - test.beforeEach(async ({ page }) => { - await page.goto('/?test') - canvas = new CanvasHelper(page) - await canvas.waitForInit() - }) +test.describe.configure({ mode: 'serial' }) - test('empty canvas', async () => { - await expect(canvas.canvas).toHaveScreenshot({ timeout: 3000 }) - }) - - test('draw rectangle', async () => { - await canvas.drawRect(100, 100, 200, 150) - await expect(canvas.canvas).toHaveScreenshot({ timeout: 3000 }) - }) - - test('draw ellipse', async () => { - await canvas.drawEllipse(100, 100, 200, 150) - await expect(canvas.canvas).toHaveScreenshot({ timeout: 3000 }) - }) - - test('draw rectangle then move it', async () => { - await canvas.drawRect(100, 100, 200, 150) - await canvas.selectTool('select') - await canvas.drag(200, 175, 400, 300) - await canvas.waitForRender() - await expect(canvas.canvas).toHaveScreenshot({ timeout: 3000 }) - }) - - test('draw and delete', async () => { - await canvas.drawRect(100, 100, 200, 150) - await canvas.deleteSelection() - await expect(canvas.canvas).toHaveScreenshot({ timeout: 3000 }) - }) - - test('draw and undo', async () => { - await canvas.drawRect(100, 100, 200, 150) - await canvas.undo() - await expect(canvas.canvas).toHaveScreenshot({ timeout: 3000 }) - }) +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('empty canvas', async () => { + await expect(canvas.canvas).toHaveScreenshot({ timeout: 3000 }) +}) + +test('draw rectangle', async () => { + await canvas.drawRect(100, 100, 200, 150) + await expect(canvas.canvas).toHaveScreenshot({ timeout: 3000 }) +}) + +test('draw ellipse', async () => { + await canvas.drawEllipse(100, 100, 200, 150) + await expect(canvas.canvas).toHaveScreenshot({ timeout: 3000 }) +}) + +test('draw rectangle then move it', async () => { + await canvas.drawRect(100, 100, 200, 150) + await canvas.selectTool('select') + await canvas.drag(200, 175, 400, 300) + await canvas.waitForRender() + await expect(canvas.canvas).toHaveScreenshot({ timeout: 3000 }) +}) + +test('draw and delete', async () => { + await canvas.drawRect(100, 100, 200, 150) + await canvas.deleteSelection() + await expect(canvas.canvas).toHaveScreenshot({ timeout: 3000 }) +}) + +test('draw and undo', async () => { + await canvas.drawRect(100, 100, 200, 150) + await canvas.undo() + await expect(canvas.canvas).toHaveScreenshot({ timeout: 3000 }) }) diff --git a/tests/e2e/create-shapes.spec.ts-snapshots/create-shapes-draw-and-delete-1-openpencil-darwin.png b/tests/e2e/create-shapes.spec.ts-snapshots/draw-and-delete-1-openpencil-darwin.png similarity index 100% rename from tests/e2e/create-shapes.spec.ts-snapshots/create-shapes-draw-and-delete-1-openpencil-darwin.png rename to tests/e2e/create-shapes.spec.ts-snapshots/draw-and-delete-1-openpencil-darwin.png diff --git a/tests/e2e/create-shapes.spec.ts-snapshots/create-shapes-draw-and-undo-1-openpencil-darwin.png b/tests/e2e/create-shapes.spec.ts-snapshots/draw-and-undo-1-openpencil-darwin.png similarity index 100% rename from tests/e2e/create-shapes.spec.ts-snapshots/create-shapes-draw-and-undo-1-openpencil-darwin.png rename to tests/e2e/create-shapes.spec.ts-snapshots/draw-and-undo-1-openpencil-darwin.png diff --git a/tests/e2e/create-shapes.spec.ts-snapshots/create-shapes-draw-ellipse-1-openpencil-darwin.png b/tests/e2e/create-shapes.spec.ts-snapshots/draw-ellipse-1-openpencil-darwin.png similarity index 100% rename from tests/e2e/create-shapes.spec.ts-snapshots/create-shapes-draw-ellipse-1-openpencil-darwin.png rename to tests/e2e/create-shapes.spec.ts-snapshots/draw-ellipse-1-openpencil-darwin.png diff --git a/tests/e2e/create-shapes.spec.ts-snapshots/create-shapes-draw-rectangle-1-openpencil-darwin.png b/tests/e2e/create-shapes.spec.ts-snapshots/draw-rectangle-1-openpencil-darwin.png similarity index 100% rename from tests/e2e/create-shapes.spec.ts-snapshots/create-shapes-draw-rectangle-1-openpencil-darwin.png rename to tests/e2e/create-shapes.spec.ts-snapshots/draw-rectangle-1-openpencil-darwin.png diff --git a/tests/e2e/create-shapes.spec.ts-snapshots/create-shapes-draw-rectangle-then-move-it-1-openpencil-darwin.png b/tests/e2e/create-shapes.spec.ts-snapshots/draw-rectangle-then-move-it-1-openpencil-darwin.png similarity index 100% rename from tests/e2e/create-shapes.spec.ts-snapshots/create-shapes-draw-rectangle-then-move-it-1-openpencil-darwin.png rename to tests/e2e/create-shapes.spec.ts-snapshots/draw-rectangle-then-move-it-1-openpencil-darwin.png diff --git a/tests/e2e/create-shapes.spec.ts-snapshots/create-shapes-empty-canvas-1-openpencil-darwin.png b/tests/e2e/create-shapes.spec.ts-snapshots/empty-canvas-1-openpencil-darwin.png similarity index 100% rename from tests/e2e/create-shapes.spec.ts-snapshots/create-shapes-empty-canvas-1-openpencil-darwin.png rename to tests/e2e/create-shapes.spec.ts-snapshots/empty-canvas-1-openpencil-darwin.png diff --git a/tests/helpers/canvas.ts b/tests/helpers/canvas.ts index de77dc2a0..c47ba88f8 100644 --- a/tests/helpers/canvas.ts +++ b/tests/helpers/canvas.ts @@ -10,7 +10,7 @@ export class CanvasHelper { } async waitForRender() { - await this.page.waitForTimeout(500) + await this.page.waitForTimeout(100) } async waitForInit() { @@ -18,6 +18,12 @@ export class CanvasHelper { await this.page.waitForTimeout(1000) } + async clearCanvas() { + await this.selectAll() + await this.pressKey('Backspace') + await this.waitForRender() + } + async screenshotCanvas() { return this.canvas.screenshot() }