Got testing-segment-overlays passing
This commit is contained in:
@ -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) })
|
||||||
})
|
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
Reference in New Issue
Block a user