Add E2E regression test that the gizmo remains at far zooms (#3923)
* Add E2E regression test that the gizmo remains at far zooms * Tweak test's plane color, it's slightly different in CI
This commit is contained in:
@ -537,6 +537,61 @@ const sketch001 = startSketchAt([-0, -0])
|
|||||||
await electronApp.close()
|
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] = [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)
|
||||||
|
}
|
||||||
|
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(15)
|
||||||
|
|
||||||
|
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) {
|
async function clickExportButton(page: Page) {
|
||||||
|
Reference in New Issue
Block a user