another test
This commit is contained in:
		@ -14,6 +14,7 @@ export class ToolbarFixture {
 | 
			
		||||
  tangentialArcBtn!: Locator
 | 
			
		||||
  circleBtn!: Locator
 | 
			
		||||
  rectangleBtn!: Locator
 | 
			
		||||
  lengthConstraintBtn!: Locator
 | 
			
		||||
  exitSketchBtn!: Locator
 | 
			
		||||
  editSketchBtn!: Locator
 | 
			
		||||
  fileTreeBtn!: Locator
 | 
			
		||||
@ -38,6 +39,7 @@ export class ToolbarFixture {
 | 
			
		||||
    this.tangentialArcBtn = page.getByTestId('tangential-arc')
 | 
			
		||||
    this.circleBtn = page.getByTestId('circle-center')
 | 
			
		||||
    this.rectangleBtn = page.getByTestId('corner-rectangle')
 | 
			
		||||
    this.lengthConstraintBtn = page.getByTestId('constraint-length')
 | 
			
		||||
    this.exitSketchBtn = page.getByTestId('sketch-exit')
 | 
			
		||||
    this.editSketchBtn = page.getByText('Edit Sketch')
 | 
			
		||||
    this.fileTreeBtn = page.locator('[id="files-button-holder"]')
 | 
			
		||||
 | 
			
		||||
@ -1728,4 +1728,106 @@ profile003 = circle({ center = [6.92, -4.2], radius = 3.16 }, sketch001)
 | 
			
		||||
      })
 | 
			
		||||
    }
 | 
			
		||||
  )
 | 
			
		||||
  test2(
 | 
			
		||||
    '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 ({ app, scene, toolbar, editor, cmdBar }) => {
 | 
			
		||||
      await app.initialise(`sketch001 = startSketchOn('XZ')
 | 
			
		||||
profile001 = startProfileAt([6.24, 4.54], sketch001)
 | 
			
		||||
  |> line([-0.41, 6.99], %)
 | 
			
		||||
  |> line([8.61, 0.74], %)
 | 
			
		||||
  |> line([10.99, -5.22], %)
 | 
			
		||||
profile002 = startProfileAt([11.19, 5.02], sketch001)
 | 
			
		||||
  |> angledLine([0, 10.78], %, $rectangleSegmentA001)
 | 
			
		||||
  |> angledLine([
 | 
			
		||||
       segAng(rectangleSegmentA001) - 90,
 | 
			
		||||
       4.14
 | 
			
		||||
     ], %)
 | 
			
		||||
  |> angledLine([
 | 
			
		||||
       segAng(rectangleSegmentA001),
 | 
			
		||||
       -segLen(rectangleSegmentA001)
 | 
			
		||||
     ], %)
 | 
			
		||||
  |> lineTo([profileStartX(%), profileStartY(%)], %)
 | 
			
		||||
  |> close(%)
 | 
			
		||||
profile003 = circle({ center = [6.92, -4.2], radius = 3.16 }, sketch001)
 | 
			
		||||
`)
 | 
			
		||||
 | 
			
		||||
      const [pointOnSegment] = scene.makeMouseHelpers(590, 141)
 | 
			
		||||
      const [segment1Click] = scene.makeMouseHelpers(616, 131)
 | 
			
		||||
      const sketchIsDrawnProperly = async () => {
 | 
			
		||||
        await test2.step(
 | 
			
		||||
          'check the sketch is still drawn properly',
 | 
			
		||||
          async () => {
 | 
			
		||||
            await app.page.waitForTimeout(200)
 | 
			
		||||
            await scene.expectPixelColor(
 | 
			
		||||
              [255, 255, 255],
 | 
			
		||||
              { x: 617, y: 163 },
 | 
			
		||||
              15
 | 
			
		||||
            )
 | 
			
		||||
            await scene.expectPixelColor(
 | 
			
		||||
              [255, 255, 255],
 | 
			
		||||
              { x: 629, y: 331 },
 | 
			
		||||
              15
 | 
			
		||||
            )
 | 
			
		||||
          }
 | 
			
		||||
        )
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      await test2.step('enter sketch and setup', async () => {
 | 
			
		||||
        await pointOnSegment({ shouldDbClick: true })
 | 
			
		||||
        await app.page.waitForTimeout(600)
 | 
			
		||||
 | 
			
		||||
        await toolbar.lineBtn.click()
 | 
			
		||||
        await app.page.waitForTimeout(100)
 | 
			
		||||
      })
 | 
			
		||||
 | 
			
		||||
      await test2.step('select and delete code for a profile', async () => {})
 | 
			
		||||
      await app.page.getByText('close(%)').click()
 | 
			
		||||
      await app.page.keyboard.down('Shift')
 | 
			
		||||
      for (let i = 0; i < 11; i++) {
 | 
			
		||||
        await app.page.keyboard.press('ArrowUp')
 | 
			
		||||
      }
 | 
			
		||||
      await app.page.keyboard.press('Home')
 | 
			
		||||
      await app.page.keyboard.up('Shift')
 | 
			
		||||
      await app.page.keyboard.press('Backspace')
 | 
			
		||||
 | 
			
		||||
      await sketchIsDrawnProperly()
 | 
			
		||||
 | 
			
		||||
      await test2.step('add random new var between profiles', async () => {
 | 
			
		||||
        await app.page.keyboard.type('myVar = 5')
 | 
			
		||||
        await app.page.keyboard.press('Enter')
 | 
			
		||||
        await app.page.waitForTimeout(600)
 | 
			
		||||
      })
 | 
			
		||||
 | 
			
		||||
      await sketchIsDrawnProperly()
 | 
			
		||||
 | 
			
		||||
      await test2.step(
 | 
			
		||||
        'Adding a constraint with a variable, and than ctrl-z-ing which will remove the variable again does not break sketch mode',
 | 
			
		||||
        async () => {
 | 
			
		||||
          await expect(async () => {
 | 
			
		||||
            await segment1Click()
 | 
			
		||||
            await editor.expectState({
 | 
			
		||||
              diagnostics: [],
 | 
			
		||||
              activeLines: ['|>line([-0.41,6.99],%)'],
 | 
			
		||||
              highlightedCode: 'line([-0.41,6.99],%)',
 | 
			
		||||
            })
 | 
			
		||||
          }).toPass({ timeout: 5_000, intervals: [500] })
 | 
			
		||||
 | 
			
		||||
          await toolbar.lengthConstraintBtn.click()
 | 
			
		||||
          await cmdBar.progressCmdBar()
 | 
			
		||||
          await editor.expectEditor.toContain('length001 = 7')
 | 
			
		||||
 | 
			
		||||
          // wait for execute defer
 | 
			
		||||
          await app.page.waitForTimeout(600)
 | 
			
		||||
          await sketchIsDrawnProperly()
 | 
			
		||||
 | 
			
		||||
          await app.page.keyboard.down('Meta')
 | 
			
		||||
          await app.page.keyboard.press('KeyZ')
 | 
			
		||||
          await app.page.keyboard.up('Meta')
 | 
			
		||||
 | 
			
		||||
          await editor.expectEditor.not.toContain('length001 = 7')
 | 
			
		||||
          await sketchIsDrawnProperly()
 | 
			
		||||
        }
 | 
			
		||||
      )
 | 
			
		||||
    }
 | 
			
		||||
  )
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user