From 8c4080fbaa24569430664d283480701bb399ba3d Mon Sep 17 00:00:00 2001 From: Frank Noirot Date: Thu, 19 Sep 2024 13:55:35 -0400 Subject: [PATCH 1/2] Add E2E regression test that the gizmo remains at far zooms --- e2e/playwright/regression-tests.spec.ts | 55 +++++++++++++++++++++++++ 1 file changed, 55 insertions(+) diff --git a/e2e/playwright/regression-tests.spec.ts b/e2e/playwright/regression-tests.spec.ts index 303eb028be..7582ab02f2 100644 --- a/e2e/playwright/regression-tests.spec.ts +++ b/e2e/playwright/regression-tests.spec.ts @@ -537,6 +537,61 @@ const sketch001 = startSketchAt([-0, -0]) await electronApp.close() } ) + + test(`View gizmo stays visible even when zoomed out all the way`, async ({ + page, + }) => { + const u = await getUtils(page) + + // Constants and locators + const planeColor: [number, number, number] = [179, 220, 180] + const bgColor: [number, number, number] = [27, 27, 27] + const middlePixelIsColor = async (color: [number, number, number]) => { + return u.getGreatestPixDiff({ x: 600, y: 250 }, color) + } + const gizmo = page.locator('[aria-label*=gizmo]') + + await test.step(`Load an empty file`, async () => { + await page.addInitScript(async () => { + localStorage.setItem('persistCode', '') + }) + await page.setViewportSize({ width: 1200, height: 500 }) + await u.waitForAuthSkipAppStart() + await u.closeKclCodePanel() + }) + + await test.step(`Zoom out until you can't see the default planes`, async () => { + await expect + .poll(async () => middlePixelIsColor(planeColor), { + timeout: 5000, + message: 'Plane color is visible', + }) + .toBeLessThan(10) + + let maxZoomOuts = 10 + let middlePixelIsBackgroundColor = + (await middlePixelIsColor(bgColor)) < 10 + while (!middlePixelIsBackgroundColor && maxZoomOuts > 0) { + await page.keyboard.down('Control') + await page.mouse.move(600, 460) + await page.mouse.down({ button: 'right' }) + await page.mouse.move(600, 50, { steps: 20 }) + await page.mouse.up({ button: 'right' }) + await page.keyboard.up('Control') + await page.waitForTimeout(100) + maxZoomOuts-- + middlePixelIsBackgroundColor = (await middlePixelIsColor(bgColor)) < 10 + } + + expect(middlePixelIsBackgroundColor, { + message: 'We no longer the default planes', + }).toBeTruthy() + }) + + await test.step(`Check that the gizmo is still visible`, async () => { + await expect(gizmo).toBeVisible() + }) + }) }) async function clickExportButton(page: Page) { From c0a73fade9391b77698bb82041dfe7558f05f52e Mon Sep 17 00:00:00 2001 From: Frank Noirot Date: Fri, 20 Sep 2024 09:38:50 -0400 Subject: [PATCH 2/2] Tweak test's plane color, it's slightly different in CI --- e2e/playwright/regression-tests.spec.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/e2e/playwright/regression-tests.spec.ts b/e2e/playwright/regression-tests.spec.ts index 7582ab02f2..c23a624d43 100644 --- a/e2e/playwright/regression-tests.spec.ts +++ b/e2e/playwright/regression-tests.spec.ts @@ -544,7 +544,7 @@ const sketch001 = startSketchAt([-0, -0]) const u = await getUtils(page) // Constants and locators - const planeColor: [number, number, number] = [179, 220, 180] + const planeColor: [number, number, number] = [170, 220, 170] const bgColor: [number, number, number] = [27, 27, 27] const middlePixelIsColor = async (color: [number, number, number]) => { return u.getGreatestPixDiff({ x: 600, y: 250 }, color) @@ -566,7 +566,7 @@ const sketch001 = startSketchAt([-0, -0]) timeout: 5000, message: 'Plane color is visible', }) - .toBeLessThan(10) + .toBeLessThan(15) let maxZoomOuts = 10 let middlePixelIsBackgroundColor =