From 9a7b64e8853392cacd935f132c69586ae99d64fc Mon Sep 17 00:00:00 2001 From: Pierre Jacquier Date: Wed, 24 Sep 2025 10:08:59 -0400 Subject: [PATCH] pierremtb/adhoc/start-sketch-default-plane-fixture --- Makefile | 2 +- e2e/playwright/fixtures/toolbarFixture.ts | 21 +++++++++++++++++++ e2e/playwright/point-click.spec.ts | 3 +-- e2e/playwright/sketch-tests.spec.ts | 11 +++------- e2e/playwright/snap-to-grid.spec.ts | 4 +--- e2e/playwright/snapshot-tests.spec.ts | 10 +-------- ...test-network-and-connection-issues.spec.ts | 9 +------- e2e/playwright/testing-selections.spec.ts | 11 +--------- 8 files changed, 30 insertions(+), 41 deletions(-) diff --git a/Makefile b/Makefile index 69112d1b0f8..e48b5cc096d 100644 --- a/Makefile +++ b/Makefile @@ -148,7 +148,7 @@ endif .PHONY: test-e2e-desktop test-e2e-desktop: install build ## Run the desktop e2e tests ifdef E2E_GREP - npm run test:e2e:desktop -- --grep="$(E2E_GREP)" --max-failures=$(E2E_FAILURES) $(PW_ARGS) + npm run test:e2e:desktop -- --grep="$(E2E_GREP)" --max-failures=$(E2E_FAILURES) --retries 5 $(PW_ARGS) else npm run test:e2e:desktop -- --workers='100%' $(PW_ARGS) endif diff --git a/e2e/playwright/fixtures/toolbarFixture.ts b/e2e/playwright/fixtures/toolbarFixture.ts index e5306832cbf..0e50a9aee9e 100644 --- a/e2e/playwright/fixtures/toolbarFixture.ts +++ b/e2e/playwright/fixtures/toolbarFixture.ts @@ -108,6 +108,27 @@ export class ToolbarFixture { startSketchPlaneSelection = async () => doAndWaitForImageDiff(this.page, () => this.startSketchBtn.click(), 500) + selectDefaultPlane = async ( + plane: 'Front plane' | 'Top plane' | 'Right plane' + ) => { + const isFtOpen = await this.checkIfFeatureTreePaneIsOpen() + if (!isFtOpen) { + await this.openFeatureTreePane() + } + await this.page.getByRole('button', { name: plane }).click() + if (!isFtOpen) { + await this.closeFeatureTreePane() + } + await this.page.waitForTimeout(1000) + } + + startSketchOnDefaultPlane = async ( + plane: 'Front plane' | 'Top plane' | 'Right plane' + ) => { + await this.startSketchPlaneSelection() + await this.selectDefaultPlane(plane) + } + waitUntilSketchingReady = async () => { await expect(this.gizmoDisabled).toBeVisible() } diff --git a/e2e/playwright/point-click.spec.ts b/e2e/playwright/point-click.spec.ts index 8706c35ec0b..79c70aa33b9 100644 --- a/e2e/playwright/point-click.spec.ts +++ b/e2e/playwright/point-click.spec.ts @@ -1034,8 +1034,7 @@ openSketch = startSketchOn(XY) highlightedHeaderArg: 'plane', commandName: 'Offset plane', }) - const xz = await toolbar.getFeatureTreeOperation('Front plane', 0) - await xz.click() + await toolbar.selectDefaultPlane('Front plane') await cmdBar.expectState({ stage: 'arguments', currentArgKey: 'offset', diff --git a/e2e/playwright/sketch-tests.spec.ts b/e2e/playwright/sketch-tests.spec.ts index c3f193976a2..f33e380399c 100644 --- a/e2e/playwright/sketch-tests.spec.ts +++ b/e2e/playwright/sketch-tests.spec.ts @@ -203,8 +203,7 @@ test.describe('Sketch tests', () => { await test.step('Open feature tree and select Front plane (XZ)', async () => { await toolbar.openFeatureTreePane() - - await page.getByRole('button', { name: 'Front plane' }).click() + await toolbar.selectDefaultPlane('Front plane') await page.waitForTimeout(600) @@ -1633,8 +1632,6 @@ profile001 = startProfile(sketch001, at=[0, 0]) page.getByRole('button', { name: 'Start Sketch' }) ).not.toBeDisabled() - const [selectXZPlane] = scene.makeMouseHelpers(650, 150) - const [startProfile1] = scene.makeMouseHelpers(568, 150) const [endLineStartTanArc] = scene.makeMouseHelpers(701, 158) const [endArcStartLine] = scene.makeMouseHelpers(745, 189) @@ -1687,8 +1684,7 @@ profile001 = startProfile(sketch001, at=[0, 0]) 306 ) - await toolbar.startSketchPlaneSelection() - await selectXZPlane() + await toolbar.startSketchOnDefaultPlane('Front plane') // timeout wait for engine animation is unavoidable await page.waitForTimeout(600) await editor.expectEditor.toContain('sketch001 = startSketchOn(XZ)') @@ -2249,8 +2245,7 @@ extrude001 = extrude(profile003, length = 5) await scene.settled(cmdBar) await toolbar.openFeatureTreePane() - await toolbar.startSketchPlaneSelection() - await page.getByRole('button', { name: 'Front plane' }).click() + await toolbar.startSketchOnDefaultPlane('Front plane') // timeout wait for engine animation is unavoidable await page.waitForTimeout(600) diff --git a/e2e/playwright/snap-to-grid.spec.ts b/e2e/playwright/snap-to-grid.spec.ts index a3377758aed..ce952e94747 100644 --- a/e2e/playwright/snap-to-grid.spec.ts +++ b/e2e/playwright/snap-to-grid.spec.ts @@ -12,9 +12,7 @@ test.describe('Snap to Grid', () => { await homePage.goToModelingScene() // Enter sketch mode and select a default axis from the Feature Tree - await toolbar.startSketchBtn.click() - await toolbar.openFeatureTreePane() - await page.getByRole('button', { name: 'Front plane' }).click() + await toolbar.startSketchOnDefaultPlane('Front plane') await page.waitForTimeout(600) // Ensure the line tool is equipped diff --git a/e2e/playwright/snapshot-tests.spec.ts b/e2e/playwright/snapshot-tests.spec.ts index a41691bf691..6bfbeb8c721 100644 --- a/e2e/playwright/snapshot-tests.spec.ts +++ b/e2e/playwright/snapshot-tests.spec.ts @@ -134,15 +134,7 @@ test( await u.waitForAuthSkipAppStart() // Start a sketch - await u.doAndWaitForImageDiff( - () => page.getByRole('button', { name: 'Start Sketch' }).click(), - 200 - ) - - // Select a plane - await toolbar.openFeatureTreePane() - await page.getByRole('button', { name: 'Front plane' }).click() - await toolbar.closeFeatureTreePane() + await toolbar.startSketchOnDefaultPlane('Front plane') await editor.expectEditor.toContain(`sketch001 = startSketchOn(XZ)`) // Equip the rectangle tool diff --git a/e2e/playwright/test-network-and-connection-issues.spec.ts b/e2e/playwright/test-network-and-connection-issues.spec.ts index 6c416b7b430..fdc17643cb4 100644 --- a/e2e/playwright/test-network-and-connection-issues.spec.ts +++ b/e2e/playwright/test-network-and-connection-issues.spec.ts @@ -104,14 +104,7 @@ test.describe('Test network related behaviors', () => { await u.openDebugPanel() // click on "Start Sketch" button - await u.clearCommandLogs() - await page.getByRole('button', { name: 'Start Sketch' }).click() - await page.waitForTimeout(100) - - // select a plane - await toolbar.openFeatureTreePane() - await page.getByRole('button', { name: 'Front plane' }).click() - await toolbar.closeFeatureTreePane() + await toolbar.startSketchOnDefaultPlane('Front plane') await expect(page.locator('.cm-content')).toHaveText( `@settings(defaultLengthUnit = in)sketch001 = startSketchOn(XZ)` diff --git a/e2e/playwright/testing-selections.spec.ts b/e2e/playwright/testing-selections.spec.ts index 7daabaceac4..f9f42a2fc5e 100644 --- a/e2e/playwright/testing-selections.spec.ts +++ b/e2e/playwright/testing-selections.spec.ts @@ -329,16 +329,7 @@ profile001 = startProfile(sketch001, at = [7.49, 9.96]) ).toBeVisible() // click on "Start Sketch" button - await u.clearCommandLogs() - await u.doAndWaitForImageDiff( - () => page.getByRole('button', { name: 'Start Sketch' }).click(), - 200 - ) - - // Clicks the XZ Plane - await toolbar.openFeatureTreePane() - await page.getByRole('button', { name: 'Front plane' }).click() - await toolbar.closeFeatureTreePane() + await toolbar.startSketchOnDefaultPlane('Front plane') await expect(page.locator('.cm-content')).toHaveText( `@settings(defaultLengthUnit = in)sketch001 = startSketchOn(XZ)`