Got testing-segment-overlays passing

This commit is contained in:
49lf
2024-11-20 13:06:46 -05:00
parent eda97a3058
commit f79a59d415

View File

@ -1,17 +1,9 @@
import { test, expect, Page } from '@playwright/test' import { test, expect, Page } from './zoo-test'
import { deg, getUtils, setup, tearDown, wiggleMove } from './test-utils' import { deg, getUtils, wiggleMove } from './test-utils'
import { LineInputsType } from 'lang/std/sketchcombos' import { LineInputsType } from 'lang/std/sketchcombos'
import { uuidv4 } from 'lib/utils' import { uuidv4 } from 'lib/utils'
test.beforeEach(async ({ context, page }, testInfo) => {
await setup(context, page, testInfo)
})
test.afterEach(async ({ page }, testInfo) => {
await tearDown(page, testInfo)
})
test.describe('Testing segment overlays', () => { test.describe('Testing segment overlays', () => {
test.describe('Hover over a segment should show its overlay, hovering over the input overlays should show its popover, clicking the input overlay should constrain/unconstrain it:\nfor the following segments', () => { test.describe('Hover over a segment should show its overlay, hovering over the input overlays should show its popover, clicking the input overlay should constrain/unconstrain it:\nfor the following segments', () => {
/** /**
@ -176,10 +168,7 @@ test.describe('Testing segment overlays', () => {
await expect(page.locator('.cm-content')).toContainText(expectFinal) await expect(page.locator('.cm-content')).toContainText(expectFinal)
} }
test.setTimeout(120000) test.setTimeout(120000)
test('for segments [line, angledLine, lineTo, xLineTo]', async ({ test('for segments [line, angledLine, lineTo, xLineTo]', async ({ page, homePage }) => { await page.addInitScript(async () => {
page,
}) => {
await page.addInitScript(async () => {
localStorage.setItem( localStorage.setItem(
'persistCode', 'persistCode',
`part001 = startSketchOn('XZ') `part001 = startSketchOn('XZ')
@ -207,7 +196,7 @@ test.describe('Testing segment overlays', () => {
const u = await getUtils(page) const u = await getUtils(page)
await page.setViewportSize({ width: 1200, height: 500 }) await page.setViewportSize({ width: 1200, height: 500 })
await u.waitForAuthSkipAppStart() await homePage.goToModelingScene()
// wait for execution done // wait for execution done
await u.openDebugPanel() await u.openDebugPanel()
@ -337,20 +326,18 @@ test.describe('Testing segment overlays', () => {
ang: ang + 180, ang: ang + 180,
steps: 8, steps: 8,
locator: '[data-overlay-toolbar-index="3"]', locator: '[data-overlay-toolbar-index="3"]',
}) }) })
}) test('for segments [yLineTo, xLine]', async ({ page, homePage }) => { await page.addInitScript(async () => {
test('for segments [yLineTo, xLine]', async ({ page }) => {
await page.addInitScript(async () => {
localStorage.setItem( localStorage.setItem(
'persistCode', 'persistCode',
`yRel001 = -14 `yRel001 = -14
xRel001 = 0.5 xRel001 = 0.5
angle001 = 3 angle001 = 3
len001 = 32 len001 = 32
yAbs001 = 11.5 yAbs001 = 11.5
xAbs001 = 33 xAbs001 = 33
xAbs002 = 4 xAbs002 = 4
part001 = startSketchOn('XZ') part001 = startSketchOn('XZ')
|> startProfileAt([0, 0], %) |> startProfileAt([0, 0], %)
|> line([0.5, yRel001], %) |> line([0.5, yRel001], %)
|> angledLine({ angle: angle001, length: len001 }, %) |> angledLine({ angle: angle001, length: len001 }, %)
@ -366,7 +353,7 @@ part001 = startSketchOn('XZ')
const u = await getUtils(page) const u = await getUtils(page)
await page.setViewportSize({ width: 1200, height: 500 }) await page.setViewportSize({ width: 1200, height: 500 })
await u.waitForAuthSkipAppStart() await homePage.goToModelingScene()
// wait for execution done // wait for execution done
await u.openDebugPanel() await u.openDebugPanel()
@ -412,12 +399,8 @@ part001 = startSketchOn('XZ')
steps: 10, steps: 10,
ang: ang + 180, ang: ang + 180,
locator: '[data-overlay-toolbar-index="5"]', locator: '[data-overlay-toolbar-index="5"]',
}) }) })
}) test('for segments [yLine, angledLineOfXLength, angledLineOfYLength]', async ({ page, homePage }) => { await page.addInitScript(async () => {
test('for segments [yLine, angledLineOfXLength, angledLineOfYLength]', async ({
page,
}) => {
await page.addInitScript(async () => {
localStorage.setItem( localStorage.setItem(
'persistCode', 'persistCode',
`part001 = startSketchOn('XZ') `part001 = startSketchOn('XZ')
@ -446,7 +429,7 @@ part001 = startSketchOn('XZ')
const u = await getUtils(page) const u = await getUtils(page)
await page.setViewportSize({ width: 1200, height: 500 }) await page.setViewportSize({ width: 1200, height: 500 })
await u.waitForAuthSkipAppStart() await homePage.goToModelingScene()
// wait for execution done // wait for execution done
await u.openDebugPanel() await u.openDebugPanel()
@ -540,12 +523,8 @@ part001 = startSketchOn('XZ')
ang: ang + 180, ang: ang + 180,
steps: 7, steps: 7,
locator: '[data-overlay-toolbar-index="8"]', locator: '[data-overlay-toolbar-index="8"]',
}) }) })
}) test('for segments [angledLineToX, angledLineToY, angledLineThatIntersects]', async ({ page, homePage }) => { await page.addInitScript(async () => {
test('for segments [angledLineToX, angledLineToY, angledLineThatIntersects]', async ({
page,
}) => {
await page.addInitScript(async () => {
localStorage.setItem( localStorage.setItem(
'persistCode', 'persistCode',
`part001 = startSketchOn('XZ') `part001 = startSketchOn('XZ')
@ -574,7 +553,7 @@ part001 = startSketchOn('XZ')
const u = await getUtils(page) const u = await getUtils(page)
await page.setViewportSize({ width: 1200, height: 500 }) await page.setViewportSize({ width: 1200, height: 500 })
await u.waitForAuthSkipAppStart() await homePage.goToModelingScene()
// wait for execution done // wait for execution done
await u.openDebugPanel() await u.openDebugPanel()
@ -698,10 +677,8 @@ part001 = startSketchOn('XZ')
}, %)`, }, %)`,
ang: ang + 180, ang: ang + 180,
locator: '[data-overlay-toolbar-index="11"]', locator: '[data-overlay-toolbar-index="11"]',
}) }) })
}) test('for segment [tangentialArcTo]', async ({ page, homePage }) => { await page.addInitScript(async () => {
test('for segment [tangentialArcTo]', async ({ page }) => {
await page.addInitScript(async () => {
localStorage.setItem( localStorage.setItem(
'persistCode', 'persistCode',
`part001 = startSketchOn('XZ') `part001 = startSketchOn('XZ')
@ -730,7 +707,7 @@ part001 = startSketchOn('XZ')
const u = await getUtils(page) const u = await getUtils(page)
await page.setViewportSize({ width: 1200, height: 500 }) await page.setViewportSize({ width: 1200, height: 500 })
await u.waitForAuthSkipAppStart() await homePage.goToModelingScene()
// wait for execution done // wait for execution done
await u.openDebugPanel() await u.openDebugPanel()
@ -772,22 +749,20 @@ part001 = startSketchOn('XZ')
ang: ang + 180, ang: ang + 180,
steps: 10, steps: 10,
locator: '[data-overlay-toolbar-index="12"]', locator: '[data-overlay-toolbar-index="12"]',
}) }) })
}) test('for segment [circle]', async ({ page, homePage }) => { await page.addInitScript(async () => {
test('for segment [circle]', async ({ page }) => {
await page.addInitScript(async () => {
localStorage.setItem( localStorage.setItem(
'persistCode', 'persistCode',
`part001 = startSketchOn('XZ') `part001 = startSketchOn('XZ')
|> circle({ center: [1 + 0, 0], radius: 8 }, %) |> circle({ center: [1 + 0, 0], radius: 8 }, %)
` `
) )
localStorage.setItem('disableAxis', 'true') localStorage.setItem('disableAxis', 'true')
}) })
const u = await getUtils(page) const u = await getUtils(page)
await page.setViewportSize({ width: 1200, height: 500 }) await page.setViewportSize({ width: 1200, height: 500 })
await u.waitForAuthSkipAppStart() await homePage.goToModelingScene()
// wait for execution done // wait for execution done
await u.openDebugPanel() await u.openDebugPanel()
@ -846,8 +821,7 @@ part001 = startSketchOn('XZ')
ang: ang + 105, ang: ang + 105,
steps: 10, steps: 10,
locator: '[data-overlay-toolbar-index="0"]', locator: '[data-overlay-toolbar-index="0"]',
}) }) })
})
}) })
test.describe('Testing deleting a segment', () => { test.describe('Testing deleting a segment', () => {
const _deleteSegmentSequence = const _deleteSegmentSequence =
@ -887,8 +861,7 @@ part001 = startSketchOn('XZ')
codeToBeDeleted codeToBeDeleted
) )
} }
test('all segment types', async ({ page }) => { test('all segment types', async ({ page, homePage }) => { await page.addInitScript(async () => {
await page.addInitScript(async () => {
localStorage.setItem( localStorage.setItem(
'persistCode', 'persistCode',
`part001 = startSketchOn('XZ') `part001 = startSketchOn('XZ')
@ -917,7 +890,7 @@ part001 = startSketchOn('XZ')
const u = await getUtils(page) const u = await getUtils(page)
await page.setViewportSize({ width: 1200, height: 500 }) await page.setViewportSize({ width: 1200, height: 500 })
await u.waitForAuthSkipAppStart() await homePage.goToModelingScene()
// wait for execution done // wait for execution done
await u.openDebugPanel() await u.openDebugPanel()
@ -1093,8 +1066,7 @@ part001 = startSketchOn('XZ')
ang: ang + 180, ang: ang + 180,
}) })
await page.waitForTimeout(200) await page.waitForTimeout(200) })
})
}) })
test.describe('Testing delete with dependent segments', () => { test.describe('Testing delete with dependent segments', () => {
const cases = [ const cases = [
@ -1118,8 +1090,7 @@ part001 = startSketchOn('XZ')
const isObj = lineOfInterest.includes('{ angle: 3,') const isObj = lineOfInterest.includes('{ angle: 3,')
test(`${lineOfInterest.split('(')[0]}${isObj ? '-[obj-input]' : ''}${ test(`${lineOfInterest.split('(')[0]}${isObj ? '-[obj-input]' : ''}${
doesHaveTagOutsideSketch ? '-[tagOutsideSketch]' : '' doesHaveTagOutsideSketch ? '-[tagOutsideSketch]' : ''
}`, async ({ page }) => { }`, async ({ page, homePage }) => { await page.addInitScript(
await page.addInitScript(
async ({ lineToBeDeleted, extraLine }) => { async ({ lineToBeDeleted, extraLine }) => {
localStorage.setItem( localStorage.setItem(
'persistCode', 'persistCode',
@ -1128,7 +1099,7 @@ part001 = startSketchOn('XZ')
|> ${lineToBeDeleted} |> ${lineToBeDeleted}
|> line([-10, -15], %) |> line([-10, -15], %)
|> angledLine([-176, segLen(seg01)], %) |> angledLine([-176, segLen(seg01)], %)
${extraLine ? 'myVar = segLen(seg01)' : ''}` ${extraLine ? 'myVar = segLen(seg01)' : ''}`
) )
}, },
{ {
@ -1139,7 +1110,7 @@ ${extraLine ? 'myVar = segLen(seg01)' : ''}`
const u = await getUtils(page) const u = await getUtils(page)
await page.setViewportSize({ width: 1200, height: 500 }) await page.setViewportSize({ width: 1200, height: 500 })
await u.waitForAuthSkipAppStart() await homePage.goToModelingScene()
await page.waitForTimeout(300) await page.waitForTimeout(300)
await page.getByText(lineOfInterest).click() await page.getByText(lineOfInterest).click()
@ -1208,8 +1179,7 @@ ${extraLine ? 'myVar = segLen(seg01)' : ''}`
) )
// eslint-disable-next-line jest/no-conditional-expect // eslint-disable-next-line jest/no-conditional-expect
await expect(page.locator('.cm-content')).not.toContainText('seg01') await expect(page.locator('.cm-content')).not.toContainText('seg01')
} } })
})
} }
} }
}) })
@ -1276,10 +1246,7 @@ ${extraLine ? 'myVar = segLen(seg01)' : ''}`
for (const { before, after } of cases) { for (const { before, after } of cases) {
const isObj = before.includes('{ angle: 3') const isObj = before.includes('{ angle: 3')
test(`${before.split('(')[0]}${isObj ? '-[obj-input]' : ''}`, async ({ test(`${before.split('(')[0]}${isObj ? '-[obj-input]' : ''}`, async ({ page, homePage }) => { await page.addInitScript(
page,
}) => {
await page.addInitScript(
async ({ lineToBeDeleted }) => { async ({ lineToBeDeleted }) => {
localStorage.setItem( localStorage.setItem(
'persistCode', 'persistCode',
@ -1297,7 +1264,7 @@ ${extraLine ? 'myVar = segLen(seg01)' : ''}`
const u = await getUtils(page) const u = await getUtils(page)
await page.setViewportSize({ width: 1200, height: 500 }) await page.setViewportSize({ width: 1200, height: 500 })
await u.waitForAuthSkipAppStart() await homePage.goToModelingScene()
await page.waitForTimeout(300) await page.waitForTimeout(300)
await page.getByText(before).click() await page.getByText(before).click()
@ -1340,8 +1307,7 @@ ${extraLine ? 'myVar = segLen(seg01)' : ''}`
await expect(page.locator('.cm-content')).toContainText(after) await expect(page.locator('.cm-content')).toContainText(after)
// check the cursor was left in the correct place after transform // check the cursor was left in the correct place after transform
await expect(page.locator('.cm-activeLine')).toHaveText('|> ' + after) await expect(page.locator('.cm-activeLine')).toHaveText('|> ' + after)
await expect(page.getByTestId('segment-overlay')).toHaveCount(3) await expect(page.getByTestId('segment-overlay')).toHaveCount(3) })
})
} }
}) })
}) })