Fix up all the tests

This commit is contained in:
49lf
2025-01-09 15:59:11 -05:00
parent 3344208c63
commit 30397ba7ab
4 changed files with 111 additions and 51 deletions

View File

@ -299,7 +299,7 @@ test(
}
)
test(
test.skip(
'external change of file contents are reflected in editor',
{ tag: '@electron' },
async ({ context, page }, testInfo) => {

View File

@ -514,10 +514,7 @@ test(
const modelColor: [number, number, number] = [76, 76, 76]
await page.mouse.move(XYPlanePoint.x, XYPlanePoint.y)
await expectPixelColor(page, modelColor, XYPlanePoint, 8)
await tutorialDismissButton.click()
// Make sure model still there.
await expectPixelColor(page, modelColor, XYPlanePoint, 8)
})
await test.step('Clear code and restart onboarding from settings', async () => {

View File

@ -1345,7 +1345,11 @@ test.describe('multi-profile sketching', () => {
page,
homePage,
}) => {
await page.setBodyDimensions({ width: 1000, height: 500 })
await homePage.goToModelingScene()
await expect(
page.getByRole('button', { name: 'Start Sketch' })
).not.toBeDisabled()
const [selectXZPlane] = scene.makeMouseHelpers(650, 150)
@ -1383,21 +1387,21 @@ test.describe('multi-profile sketching', () => {
await test.step('Create a close profile stopping mid profile to equip the tangential arc, and than back to the line tool', async () => {
await startProfile1()
await editor.expectEditor.toContain(
`profile001 = startProfileAt([-2.17, 12.21], sketch001)`
`profile001 = startProfileAt([4.61, 12.21], sketch001)`
)
await endLineStartTanArc()
await editor.expectEditor.toContain(`|> line([9.02, -0.55], %)`)
await toolbar.tangentialArcBtn.click()
await page.waitForTimeout(100)
await page.waitForTimeout(300)
await page.mouse.click(745, 359)
await page.waitForTimeout(100)
await page.waitForTimeout(300)
await endLineStartTanArc({ delay: 544 })
await endArcStartLine()
await editor.expectEditor.toContain(`|> tangentialArcTo([9.83, 4.14], %)`)
await editor.expectEditor.toContain(`|> tangentialArcTo([16.61, 4.14], %)`)
await toolbar.lineBtn.click()
await page.waitForTimeout(100)
await page.waitForTimeout(300)
await endArcStartLine()
await page.mouse.click(572, 110)
@ -1408,17 +1412,20 @@ test.describe('multi-profile sketching', () => {
|> close(%)`,
{ shouldNormalise: true }
)
await page.waitForTimeout(100)
await page.waitForTimeout(300)
})
await test.step('Without unequipping from the last step, make another profile, and one that is not closed', async () => {
await startProfile2()
await page.waitForTimeout(300)
await editor.expectEditor.toContain(
`profile002 = startProfileAt([12.34, 11.53], sketch001)`
`profile002 = startProfileAt([19.12, 11.53], sketch001)`
)
await profile2Point2()
await page.waitForTimeout(300)
await editor.expectEditor.toContain(`|> line([9.43, -0.68], %)`)
await profile2Point3()
await page.waitForTimeout(300)
await editor.expectEditor.toContain(`|> line([2.17, -5.97], %)`)
})
@ -1426,10 +1433,11 @@ test.describe('multi-profile sketching', () => {
await toolbar.circleBtn.click()
await circle1Center()
await page.waitForTimeout(100)
await page.waitForTimeout(300)
await circle1Radius({ delay: 500 })
await page.waitForTimeout(300)
await editor.expectEditor.toContain(
`profile003 = circle({ center = [16.41, 6.98], radius = 2.5 }, sketch001)`
`profile003 = circle({ center = [23.19, 6.98], radius = 2.5 }, sketch001)`
)
await test.step('hover in empty space to wait for overlays to get out of the way', async () => {
@ -1438,13 +1446,14 @@ test.describe('multi-profile sketching', () => {
})
await circle2Center()
await page.waitForTimeout(100)
await page.waitForTimeout(300)
await circle2Radius()
await editor.expectEditor.toContain(
`profile004 = circle({ center = [23.74, 1.9], radius = 0.72 }, sketch001)`
)
})
await test.step('create two corner rectangles in a row without unequip', async () => {
await page.screenshot({ path: 'rectangle.png' })
await toolbar.rectangleBtn.click()
await crnRect1point1()
@ -1460,14 +1469,15 @@ test.describe('multi-profile sketching', () => {
-segLen(rectangleSegmentA001)
], %)
|> lineTo([profileStartX(%), profileStartY(%)], %)
|> close(%)`)
await page.waitForTimeout(100)
|> close(%)`.replaceAll("\n", ""))
await crnRect2point1()
await page.waitForTimeout(300)
await editor.expectEditor.toContain(
`profile006 = startProfileAt([11.05, 2.37], sketch001)`
)
await crnRect2point2()
await page.waitForTimeout(300)
await editor.expectEditor
.toContain(`|> angledLine([0, 5.49], %, $rectangleSegmentA002)
|> angledLine([
@ -1479,17 +1489,19 @@ test.describe('multi-profile sketching', () => {
-segLen(rectangleSegmentA002)
], %)
|> lineTo([profileStartX(%), profileStartY(%)], %)
|> close(%)`)
|> close(%)`.replaceAll("\n", ""))
})
await test.step('create two center rectangles in a row without unequip', async () => {
await toolbar.selectCenterRectangle()
await cntrRect1point1()
await page.waitForTimeout(300)
await editor.expectEditor.toContain(
`profile007 = startProfileAt([8.41, -9.29], sketch001)`
)
await cntrRect1point2()
await page.waitForTimeout(300)
await editor.expectEditor
.toContain(`|> angledLine([0, 7.06], %, $rectangleSegmentA003)
|> angledLine([
@ -1501,14 +1513,16 @@ test.describe('multi-profile sketching', () => {
-segLen(rectangleSegmentA003)
], %)
|> lineTo([profileStartX(%), profileStartY(%)], %)
|> close(%)`)
await page.waitForTimeout(100)
|> close(%)`.replaceAll("\n", ""))
await page.waitForTimeout(300)
await cntrRect2point1()
await page.waitForTimeout(300)
await editor.expectEditor.toContain(
`profile008 = startProfileAt([19.33, -5.56], sketch001)`
)
await cntrRect2point2()
await page.waitForTimeout(300)
await editor.expectEditor
.toContain(`|> angledLine([0, 3.12], %, $rectangleSegmentA004)
|> angledLine([
@ -1520,7 +1534,7 @@ test.describe('multi-profile sketching', () => {
-segLen(rectangleSegmentA004)
], %)
|> lineTo([profileStartX(%), profileStartY(%)], %)
|> close(%)`)
|> close(%)`.replaceAll("\n", ""))
})
})
@ -1556,8 +1570,13 @@ profile003 = circle({ center = [6.92, -4.2], radius = 3.16 }, sketch001)
)
})
await page.setBodyDimensions({ width: 1000, height: 500 })
await homePage.goToModelingScene()
await expect(
page.getByRole('button', { name: 'Start Sketch' })
).not.toBeDisabled()
const [pointOnSegment] = scene.makeMouseHelpers(590, 141)
const [profileEnd] = scene.makeMouseHelpers(970, 105)
const profileEndMv = scene.makeMouseHelpers(951, 101)[1]
@ -1574,9 +1593,11 @@ profile003 = circle({ center = [6.92, -4.2], radius = 3.16 }, sketch001)
const [rectEnd] = scene.makeMouseHelpers(757, 395)
await test.step('enter sketch and setup', async () => {
await page.screenshot({ path: "toolbar1.png" })
await pointOnSegment({ shouldDbClick: true })
await page.waitForTimeout(600)
await page.screenshot({ path: "toolbar2.png" })
await toolbar.lineBtn.click()
await page.waitForTimeout(100)
})
@ -1638,7 +1659,7 @@ profile003 = circle({ center = [6.92, -4.2], radius = 3.16 }, sketch001)
-segLen(rectangleSegmentA002)
], %)
|> lineTo([profileStartX(%), profileStartY(%)], %)
|> close(%)`)
|> close(%)`.replaceAll("\n", ""))
})
})
test('Can delete a profile in the editor while is sketch mode, and sketch mode does not break, can ctrl+z to undo after constraint with variable was added', async ({
@ -1674,7 +1695,11 @@ profile003 = circle({ center = [6.92, -4.2], radius = 3.16 }, sketch001)
)
})
await page.setBodyDimensions({ width: 1000, height: 500 })
await homePage.goToModelingScene()
await expect(
page.getByRole('button', { name: 'Start Sketch' })
).not.toBeDisabled()
const [pointOnSegment] = scene.makeMouseHelpers(590, 141)
const [segment1Click] = scene.makeMouseHelpers(616, 131)
@ -1780,7 +1805,11 @@ extrude001 = extrude(5, profile003)
)
})
await page.setBodyDimensions({ width: 1000, height: 500 })
await homePage.goToModelingScene()
await expect(
page.getByRole('button', { name: 'Start Sketch' })
).not.toBeDisabled()
const [pointOnSegment] = scene.makeMouseHelpers(574, 207)
@ -1807,7 +1836,11 @@ extrude001 = extrude(5, profile003)
localStorage.setItem('persistCode', `myVar = 5`)
})
await page.setBodyDimensions({ width: 1000, height: 500 })
await homePage.goToModelingScene()
await expect(
page.getByRole('button', { name: 'Start Sketch' })
).not.toBeDisabled()
const [selectXZPlane] = scene.makeMouseHelpers(650, 150)
@ -1858,7 +1891,11 @@ profile002 = startProfileAt([85.81, 52.55], sketch002)
)
})
await page.setBodyDimensions({ width: 1000, height: 500 })
await homePage.goToModelingScene()
await expect(
page.getByRole('button', { name: 'Start Sketch' })
).not.toBeDisabled()
const [startProfileAt] = scene.makeMouseHelpers(606, 184)
const [nextPoint] = scene.makeMouseHelpers(763, 130)
@ -1897,7 +1934,11 @@ extrude001 = extrude(75, thePart)
)
})
await page.setBodyDimensions({ width: 1000, height: 500 })
await homePage.goToModelingScene()
await expect(
page.getByRole('button', { name: 'Start Sketch' })
).not.toBeDisabled()
const [objClick] = scene.makeMouseHelpers(565, 343)
const [profilePoint1] = scene.makeMouseHelpers(609, 289)
@ -1911,8 +1952,7 @@ extrude001 = extrude(75, thePart)
})
await test.step('expect code to match initial conditions still', async () => {
await editor.expectEditor.toContain(`thePart = startSketchOn('XZ')
|> startProfileAt([7.53, 10.51], %)`)
await editor.expectEditor.toContain(`thePart = startSketchOn('XZ') |> startProfileAt([7.53, 10.51], %)`)
})
await test.step('equiping the line tool should break up the pipe expression', async () => {
@ -2018,7 +2058,11 @@ revolve002 = revolve({ angle = 45, axis = seg02 }, profile008)
)
})
await page.setBodyDimensions({ width: 1000, height: 500 })
await homePage.goToModelingScene()
await expect(
page.getByRole('button', { name: 'Start Sketch' })
).not.toBeDisabled()
const camPositionForSelectingSketchOnWallProfiles = () =>
scene.moveCameraTo(
@ -2179,7 +2223,12 @@ loft([profile001, profile002])
)
})
await page.setBodyDimensions({ width: 1000, height: 500 })
await homePage.goToModelingScene()
await expect(
page.getByRole('button', { name: 'Start Sketch' })
).not.toBeDisabled()
const [baseProfileEdgeClick] = scene.makeMouseHelpers(621, 292)
const [rect1Crn1] = scene.makeMouseHelpers(592, 283)
@ -2230,13 +2279,21 @@ loft([profile001, profile002])
)
})
await page.setBodyDimensions({ width: 1000, height: 500 })
await homePage.goToModelingScene()
await expect(
page.getByRole('button', { name: 'Start Sketch' })
).not.toBeDisabled()
const topProfileEdgeClickCoords = { x: 602, y: 185 } as const
const [topProfileEdgeClick] = scene.makeMouseHelpers(
topProfileEdgeClickCoords.x,
topProfileEdgeClickCoords.y
)
const [sideProfileEdgeClick] = scene.makeMouseHelpers(
788,
188,
)
const [rect1Crn1] = scene.makeMouseHelpers(592, 283)
const [rect1Crn2] = scene.makeMouseHelpers(797, 268)
@ -2247,8 +2304,11 @@ loft([profile001, profile002])
)
await topProfileEdgeClick()
await page.waitForTimeout(300)
await toolbar.editSketch()
await page.waitForTimeout(600)
await sideProfileEdgeClick()
await page.waitForTimeout(300)
await scene.expectPixelColor(TEST_COLORS.BLUE, { x: 788, y: 188 }, 15)
await toolbar.rectangleBtn.click()

View File

@ -679,7 +679,7 @@ test.describe('Testing constraints', () => {
},
] as const
for (const { testName, addVariable, value, constraint } of cases) {
test(`${testName}`, async ({ context, homePage, page }) => {
test(`${testName}`, async ({ context, homePage, page, editor }) => {
// constants and locators
const cmdBarKclInput = page
.getByTestId('cmd-bar-arg-value')
@ -712,8 +712,11 @@ part002 = startSketchOn('XZ')
await page.setBodyDimensions({ width: 1200, height: 500 })
await homePage.goToModelingScene()
await u.waitForPageLoad()
await editor.scrollToText('line([74.36, 130.4], %)', true)
await page.getByText('line([74.36, 130.4], %)').click()
await page.screenshot({ path: "ok.png" })
await page.getByRole('button', { name: 'Edit Sketch' }).click()
const line3 = await u.getSegmentBodyCoords(