Switch to dynamically disabling broken tests (#6492)
* Switch to dynamically disabling broken tests * Remove stale comment * Fix nested tests
This commit is contained in:
		
							
								
								
									
										1
									
								
								.github/workflows/e2e-tests.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.github/workflows/e2e-tests.yml
									
									
									
									
										vendored
									
									
								
							@ -3,7 +3,6 @@ on:
 | 
			
		||||
  push:
 | 
			
		||||
    branches:
 | 
			
		||||
      - main
 | 
			
		||||
      - all-e2e # this bypasses `fixme()` using `orRunWhenFullSuiteEnabled()`
 | 
			
		||||
  pull_request:
 | 
			
		||||
  schedule:
 | 
			
		||||
    - cron: 0 * * * *  # hourly
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										45
									
								
								.github/workflows/update-e2e-branch.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										45
									
								
								.github/workflows/update-e2e-branch.yml
									
									
									
									
										vendored
									
									
								
							@ -1,45 +0,0 @@
 | 
			
		||||
name: update-e2e-branch
 | 
			
		||||
 | 
			
		||||
# This is used to sync the `all-e2e` branch with the `main` branch for the
 | 
			
		||||
# logic in the test utility `orRunWhenFullSuiteEnabled()` that allows all e2e
 | 
			
		||||
# tests to run on a particular branch to analyze failures metrics in Axiom.
 | 
			
		||||
 | 
			
		||||
on:
 | 
			
		||||
  schedule:
 | 
			
		||||
    - cron: '0 * * * *' # runs every hour
 | 
			
		||||
 | 
			
		||||
permissions:
 | 
			
		||||
  contents: write
 | 
			
		||||
 | 
			
		||||
jobs:
 | 
			
		||||
  update-branch:
 | 
			
		||||
    runs-on: ubuntu-latest
 | 
			
		||||
    steps:
 | 
			
		||||
      - uses: actions/create-github-app-token@v1
 | 
			
		||||
        id: app-token
 | 
			
		||||
        with:
 | 
			
		||||
          app-id: ${{ secrets.MODELING_APP_GH_APP_ID }}
 | 
			
		||||
          private-key: ${{ secrets.MODELING_APP_GH_APP_PRIVATE_KEY }}
 | 
			
		||||
          owner: ${{ github.repository_owner }}
 | 
			
		||||
 | 
			
		||||
      - uses: actions/checkout@v4
 | 
			
		||||
        with:
 | 
			
		||||
          token: ${{ steps.app-token.outputs.token }}
 | 
			
		||||
 | 
			
		||||
      - name: Sync with main
 | 
			
		||||
        run: |
 | 
			
		||||
          # Create the branch
 | 
			
		||||
          git checkout all-e2e || git checkout -b all-e2e
 | 
			
		||||
 | 
			
		||||
          # Reset to main
 | 
			
		||||
          git fetch origin
 | 
			
		||||
          git reset --hard origin/main
 | 
			
		||||
 | 
			
		||||
          # Get a new SHA to prevent overwriting the commit status on main
 | 
			
		||||
          git config --local user.email "github-actions[bot]@users.noreply.github.com"
 | 
			
		||||
          git config --local user.name "github-actions[bot]"
 | 
			
		||||
          git commit --allow-empty --message="[all-e2e] $(git log --max-count=1 --pretty=%B)"
 | 
			
		||||
 | 
			
		||||
          # Overwrite the branch
 | 
			
		||||
          git remote set-url origin https://x-access-token:${{ steps.app-token.outputs.token }}@github.com/${{ github.repository }}.git
 | 
			
		||||
          git push --force origin all-e2e
 | 
			
		||||
@ -6,7 +6,6 @@ import {
 | 
			
		||||
  TEST_COLORS,
 | 
			
		||||
  commonPoints,
 | 
			
		||||
  getUtils,
 | 
			
		||||
  orRunWhenFullSuiteEnabled,
 | 
			
		||||
} from '@e2e/playwright/test-utils'
 | 
			
		||||
import { expect, test } from '@e2e/playwright/zoo-test'
 | 
			
		||||
 | 
			
		||||
@ -157,7 +156,6 @@ async function doBasicSketch(
 | 
			
		||||
 | 
			
		||||
test.describe('Basic sketch', () => {
 | 
			
		||||
  test('code pane open at start', async ({ page, homePage }) => {
 | 
			
		||||
    test.fixme(orRunWhenFullSuiteEnabled())
 | 
			
		||||
    await doBasicSketch(page, homePage, ['code'])
 | 
			
		||||
  })
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -3,11 +3,7 @@ import { bracket } from '@e2e/playwright/fixtures/bracket'
 | 
			
		||||
import fsp from 'fs/promises'
 | 
			
		||||
 | 
			
		||||
import { TEST_CODE_LONG_WITH_ERROR_OUT_OF_VIEW } from '@e2e/playwright/storageStates'
 | 
			
		||||
import {
 | 
			
		||||
  executorInputPath,
 | 
			
		||||
  getUtils,
 | 
			
		||||
  orRunWhenFullSuiteEnabled,
 | 
			
		||||
} from '@e2e/playwright/test-utils'
 | 
			
		||||
import { executorInputPath, getUtils } from '@e2e/playwright/test-utils'
 | 
			
		||||
import { expect, test } from '@e2e/playwright/zoo-test'
 | 
			
		||||
 | 
			
		||||
test.describe('Code pane and errors', () => {
 | 
			
		||||
@ -57,7 +53,6 @@ extrude001 = extrude(sketch001, length = 5)`
 | 
			
		||||
    homePage,
 | 
			
		||||
    editor,
 | 
			
		||||
  }) => {
 | 
			
		||||
    test.fixme(orRunWhenFullSuiteEnabled())
 | 
			
		||||
    const u = await getUtils(page)
 | 
			
		||||
 | 
			
		||||
    // Load the app with the working starter code
 | 
			
		||||
@ -131,7 +126,6 @@ extrude001 = extrude(sketch001, length = 5)`
 | 
			
		||||
    homePage,
 | 
			
		||||
    context,
 | 
			
		||||
  }) => {
 | 
			
		||||
    test.fixme(orRunWhenFullSuiteEnabled())
 | 
			
		||||
    // Load the app with the working starter code
 | 
			
		||||
    await context.addInitScript((code) => {
 | 
			
		||||
      localStorage.setItem('persistCode', code)
 | 
			
		||||
 | 
			
		||||
@ -2,11 +2,7 @@ import path, { join } from 'path'
 | 
			
		||||
import { KCL_DEFAULT_LENGTH } from '@src/lib/constants'
 | 
			
		||||
import * as fsp from 'fs/promises'
 | 
			
		||||
 | 
			
		||||
import {
 | 
			
		||||
  executorInputPath,
 | 
			
		||||
  getUtils,
 | 
			
		||||
  orRunWhenFullSuiteEnabled,
 | 
			
		||||
} from '@e2e/playwright/test-utils'
 | 
			
		||||
import { executorInputPath, getUtils } from '@e2e/playwright/test-utils'
 | 
			
		||||
import { expect, test } from '@e2e/playwright/zoo-test'
 | 
			
		||||
 | 
			
		||||
test.describe('Command bar tests', () => {
 | 
			
		||||
@ -53,7 +49,6 @@ test.describe('Command bar tests', () => {
 | 
			
		||||
 | 
			
		||||
  // TODO: fix this test after the electron migration
 | 
			
		||||
  test('Fillet from command bar', async ({ page, homePage }) => {
 | 
			
		||||
    test.fixme(orRunWhenFullSuiteEnabled())
 | 
			
		||||
    await page.addInitScript(async () => {
 | 
			
		||||
      localStorage.setItem(
 | 
			
		||||
        'persistCode',
 | 
			
		||||
 | 
			
		||||
@ -6,7 +6,6 @@ import {
 | 
			
		||||
  TEST_COLORS,
 | 
			
		||||
  executorInputPath,
 | 
			
		||||
  getUtils,
 | 
			
		||||
  orRunWhenFullSuiteEnabled,
 | 
			
		||||
} from '@e2e/playwright/test-utils'
 | 
			
		||||
import { expect, test } from '@e2e/playwright/zoo-test'
 | 
			
		||||
 | 
			
		||||
@ -651,7 +650,6 @@ sketch_001 = startSketchOn(XY)
 | 
			
		||||
    page,
 | 
			
		||||
    homePage,
 | 
			
		||||
  }) => {
 | 
			
		||||
    test.fixme(orRunWhenFullSuiteEnabled())
 | 
			
		||||
    const u = await getUtils(page)
 | 
			
		||||
    await page.addInitScript(async () => {
 | 
			
		||||
      localStorage.setItem(
 | 
			
		||||
@ -1150,7 +1148,6 @@ sketch001 = startSketchOn(XZ)
 | 
			
		||||
    `Can import a local OBJ file`,
 | 
			
		||||
    { tag: '@electron' },
 | 
			
		||||
    async ({ page, context }, testInfo) => {
 | 
			
		||||
      test.fixme(orRunWhenFullSuiteEnabled())
 | 
			
		||||
      await context.folderSetupFn(async (dir) => {
 | 
			
		||||
        const bracketDir = join(dir, 'cube')
 | 
			
		||||
        await fsp.mkdir(bracketDir, { recursive: true })
 | 
			
		||||
 | 
			
		||||
@ -7,8 +7,6 @@ import {
 | 
			
		||||
  createProject,
 | 
			
		||||
  executorInputPath,
 | 
			
		||||
  getUtils,
 | 
			
		||||
  orRunWhenFullSuiteEnabled,
 | 
			
		||||
  runningOnWindows,
 | 
			
		||||
} from '@e2e/playwright/test-utils'
 | 
			
		||||
import { expect, test } from '@e2e/playwright/zoo-test'
 | 
			
		||||
 | 
			
		||||
@ -17,9 +15,6 @@ test.describe('integrations tests', () => {
 | 
			
		||||
    'Creating a new file or switching file while in sketchMode should exit sketchMode',
 | 
			
		||||
    { tag: '@electron' },
 | 
			
		||||
    async ({ page, context, homePage, scene, editor, toolbar, cmdBar }) => {
 | 
			
		||||
      if (runningOnWindows()) {
 | 
			
		||||
        test.fixme(orRunWhenFullSuiteEnabled())
 | 
			
		||||
      }
 | 
			
		||||
      await context.folderSetupFn(async (dir) => {
 | 
			
		||||
        const bracketDir = join(dir, 'test-sample')
 | 
			
		||||
        await fsp.mkdir(bracketDir, { recursive: true })
 | 
			
		||||
@ -283,7 +278,6 @@ test.describe('when using the file tree to', () => {
 | 
			
		||||
      tag: '@electron',
 | 
			
		||||
    },
 | 
			
		||||
    async ({ page }, testInfo) => {
 | 
			
		||||
      test.fixme(orRunWhenFullSuiteEnabled())
 | 
			
		||||
      const {
 | 
			
		||||
        panesOpen,
 | 
			
		||||
        pasteCodeInEditor,
 | 
			
		||||
 | 
			
		||||
@ -1,5 +1,5 @@
 | 
			
		||||
import { throwTronAppMissing } from '@e2e/playwright/lib/electron-helpers'
 | 
			
		||||
import { orRunWhenFullSuiteEnabled } from '@e2e/playwright/test-utils'
 | 
			
		||||
 | 
			
		||||
import { expect, test } from '@e2e/playwright/zoo-test'
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
@ -2313,8 +2313,6 @@ test.describe(
 | 
			
		||||
          scene,
 | 
			
		||||
          toolbar,
 | 
			
		||||
        }) => {
 | 
			
		||||
          // TODO: this test has been dead dead on the idle stream branch
 | 
			
		||||
          test.fixme(orRunWhenFullSuiteEnabled())
 | 
			
		||||
          if (!tronApp) {
 | 
			
		||||
            throwTronAppMissing()
 | 
			
		||||
            return
 | 
			
		||||
 | 
			
		||||
@ -14,8 +14,6 @@ import {
 | 
			
		||||
  createProject,
 | 
			
		||||
  executorInputPath,
 | 
			
		||||
  getUtils,
 | 
			
		||||
  orRunWhenFullSuiteEnabled,
 | 
			
		||||
  runningOnWindows,
 | 
			
		||||
  settingsToToml,
 | 
			
		||||
} from '@e2e/playwright/test-utils'
 | 
			
		||||
import { expect, test } from '@e2e/playwright/zoo-test'
 | 
			
		||||
@ -279,9 +277,6 @@ test.describe('Onboarding tests', () => {
 | 
			
		||||
    if (!tronApp) {
 | 
			
		||||
      fail()
 | 
			
		||||
    }
 | 
			
		||||
    if (runningOnWindows()) {
 | 
			
		||||
      test.fixme(orRunWhenFullSuiteEnabled())
 | 
			
		||||
    }
 | 
			
		||||
    await tronApp.cleanProjectDir({
 | 
			
		||||
      app: {
 | 
			
		||||
        onboarding_status: '/parametric-modeling',
 | 
			
		||||
@ -335,7 +330,6 @@ test.describe('Onboarding tests', () => {
 | 
			
		||||
    homePage,
 | 
			
		||||
    tronApp,
 | 
			
		||||
  }) => {
 | 
			
		||||
    test.fixme(orRunWhenFullSuiteEnabled())
 | 
			
		||||
    if (!tronApp) {
 | 
			
		||||
      fail()
 | 
			
		||||
    }
 | 
			
		||||
@ -409,7 +403,6 @@ test.describe('Onboarding tests', () => {
 | 
			
		||||
    homePage,
 | 
			
		||||
    tronApp,
 | 
			
		||||
  }) => {
 | 
			
		||||
    test.fixme(orRunWhenFullSuiteEnabled())
 | 
			
		||||
    if (!tronApp) {
 | 
			
		||||
      fail()
 | 
			
		||||
    }
 | 
			
		||||
@ -469,7 +462,6 @@ test('Restarting onboarding on desktop takes one attempt', async ({
 | 
			
		||||
  toolbar,
 | 
			
		||||
  tronApp,
 | 
			
		||||
}) => {
 | 
			
		||||
  test.fixme(orRunWhenFullSuiteEnabled())
 | 
			
		||||
  if (!tronApp) {
 | 
			
		||||
    fail()
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
@ -5,10 +5,6 @@ import type { Locator, Page } from '@playwright/test'
 | 
			
		||||
import type { EditorFixture } from '@e2e/playwright/fixtures/editorFixture'
 | 
			
		||||
import type { SceneFixture } from '@e2e/playwright/fixtures/sceneFixture'
 | 
			
		||||
import type { ToolbarFixture } from '@e2e/playwright/fixtures/toolbarFixture'
 | 
			
		||||
import {
 | 
			
		||||
  orRunWhenFullSuiteEnabled,
 | 
			
		||||
  runningOnWindows,
 | 
			
		||||
} from '@e2e/playwright/test-utils'
 | 
			
		||||
import { expect, test } from '@e2e/playwright/zoo-test'
 | 
			
		||||
 | 
			
		||||
// test file is for testing point an click code gen functionality that's not sketch mode related
 | 
			
		||||
@ -820,7 +816,6 @@ openSketch = startSketchOn(XY)
 | 
			
		||||
    scene,
 | 
			
		||||
    editor,
 | 
			
		||||
  }) => {
 | 
			
		||||
    test.fixme(orRunWhenFullSuiteEnabled())
 | 
			
		||||
    // Locators
 | 
			
		||||
    const firstPointLocation = { x: 200, y: 100 }
 | 
			
		||||
    const secondPointLocation = { x: 800, y: 100 }
 | 
			
		||||
@ -3547,9 +3542,6 @@ tag=$rectangleSegmentC002,
 | 
			
		||||
      toolbar,
 | 
			
		||||
      cmdBar,
 | 
			
		||||
    }) => {
 | 
			
		||||
      if (runningOnWindows()) {
 | 
			
		||||
        test.fixme(orRunWhenFullSuiteEnabled())
 | 
			
		||||
      }
 | 
			
		||||
      const initialCode = `sketch001 = startSketchOn(XZ)
 | 
			
		||||
  |> startProfileAt([-102.57, 101.72], %)
 | 
			
		||||
  |> angledLine(angle = 0, length = 202.6, tag = $rectangleSegmentA001)
 | 
			
		||||
 | 
			
		||||
@ -11,8 +11,6 @@ import {
 | 
			
		||||
  getPlaywrightDownloadDir,
 | 
			
		||||
  getUtils,
 | 
			
		||||
  isOutOfViewInScrollContainer,
 | 
			
		||||
  orRunWhenFullSuiteEnabled,
 | 
			
		||||
  runningOnWindows,
 | 
			
		||||
} from '@e2e/playwright/test-utils'
 | 
			
		||||
import { expect, test } from '@e2e/playwright/zoo-test'
 | 
			
		||||
 | 
			
		||||
@ -313,9 +311,6 @@ test(
 | 
			
		||||
  'open a file in a project works and renders, open another file in the same project with errors, it should clear the scene',
 | 
			
		||||
  { tag: '@electron' },
 | 
			
		||||
  async ({ scene, cmdBar, context, page }, testInfo) => {
 | 
			
		||||
    if (runningOnWindows()) {
 | 
			
		||||
      test.fixme(orRunWhenFullSuiteEnabled())
 | 
			
		||||
    }
 | 
			
		||||
    await context.folderSetupFn(async (dir) => {
 | 
			
		||||
      const bracketDir = path.join(dir, 'bracket')
 | 
			
		||||
      await fsp.mkdir(bracketDir, { recursive: true })
 | 
			
		||||
@ -425,9 +420,6 @@ test.describe('Can export from electron app', () => {
 | 
			
		||||
        if (!tronApp) {
 | 
			
		||||
          fail()
 | 
			
		||||
        }
 | 
			
		||||
        if (runningOnWindows()) {
 | 
			
		||||
          test.fixme(orRunWhenFullSuiteEnabled())
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        await context.folderSetupFn(async (dir) => {
 | 
			
		||||
          const bracketDir = path.join(dir, 'bracket')
 | 
			
		||||
@ -1211,7 +1203,6 @@ test(
 | 
			
		||||
  'Deleting projects, can delete individual project, can still create projects after deleting all',
 | 
			
		||||
  { tag: '@electron' },
 | 
			
		||||
  async ({ context, page }, testInfo) => {
 | 
			
		||||
    test.fixme(orRunWhenFullSuiteEnabled())
 | 
			
		||||
    const projectData = [
 | 
			
		||||
      ['router-template-slate', 'cylinder.kcl'],
 | 
			
		||||
      ['bracket', 'focusrite_scarlett_mounting_braket.kcl'],
 | 
			
		||||
@ -1290,9 +1281,6 @@ test(
 | 
			
		||||
  'Can load a file with CRLF line endings',
 | 
			
		||||
  { tag: '@electron' },
 | 
			
		||||
  async ({ context, page, scene, cmdBar }, testInfo) => {
 | 
			
		||||
    if (runningOnWindows()) {
 | 
			
		||||
      test.fixme(orRunWhenFullSuiteEnabled())
 | 
			
		||||
    }
 | 
			
		||||
    await context.folderSetupFn(async (dir) => {
 | 
			
		||||
      const routerTemplateDir = path.join(dir, 'router-template-slate')
 | 
			
		||||
      await fsp.mkdir(routerTemplateDir, { recursive: true })
 | 
			
		||||
@ -1432,7 +1420,6 @@ test(
 | 
			
		||||
  'When the project folder is empty, user can create new project and open it.',
 | 
			
		||||
  { tag: '@electron' },
 | 
			
		||||
  async ({ page }, testInfo) => {
 | 
			
		||||
    test.fixme(orRunWhenFullSuiteEnabled())
 | 
			
		||||
    const u = await getUtils(page)
 | 
			
		||||
    await page.setBodyDimensions({ width: 1200, height: 500 })
 | 
			
		||||
 | 
			
		||||
@ -1999,7 +1986,6 @@ test(
 | 
			
		||||
  'Original project name persist after onboarding',
 | 
			
		||||
  { tag: '@electron' },
 | 
			
		||||
  async ({ page, toolbar }, testInfo) => {
 | 
			
		||||
    test.fixme(orRunWhenFullSuiteEnabled())
 | 
			
		||||
    await page.setBodyDimensions({ width: 1200, height: 500 })
 | 
			
		||||
 | 
			
		||||
    const getAllProjects = () => page.getByTestId('project-link').all()
 | 
			
		||||
 | 
			
		||||
@ -1,5 +1,4 @@
 | 
			
		||||
import { expect, test } from '@e2e/playwright/zoo-test'
 | 
			
		||||
import { orRunWhenFullSuiteEnabled } from '@e2e/playwright/test-utils'
 | 
			
		||||
 | 
			
		||||
/* eslint-disable jest/no-conditional-expect */
 | 
			
		||||
 | 
			
		||||
@ -58,7 +57,6 @@ test.describe('edit with AI example snapshots', () => {
 | 
			
		||||
    `change colour`,
 | 
			
		||||
    { tag: '@snapshot' },
 | 
			
		||||
    async ({ context, homePage, cmdBar, editor, page, scene }) => {
 | 
			
		||||
      test.fixme(orRunWhenFullSuiteEnabled())
 | 
			
		||||
      await context.addInitScript((file) => {
 | 
			
		||||
        localStorage.setItem('persistCode', file)
 | 
			
		||||
      }, file)
 | 
			
		||||
 | 
			
		||||
@ -10,7 +10,6 @@ import {
 | 
			
		||||
  TEST_COLORS,
 | 
			
		||||
  executorInputPath,
 | 
			
		||||
  getUtils,
 | 
			
		||||
  orRunWhenFullSuiteEnabled,
 | 
			
		||||
} from '@e2e/playwright/test-utils'
 | 
			
		||||
import { expect, test } from '@e2e/playwright/zoo-test'
 | 
			
		||||
 | 
			
		||||
@ -566,7 +565,6 @@ extrude002 = extrude(profile002, length = 150)
 | 
			
		||||
    `Network health indicator only appears in modeling view`,
 | 
			
		||||
    { tag: '@electron' },
 | 
			
		||||
    async ({ context, page }, testInfo) => {
 | 
			
		||||
      test.fixme(orRunWhenFullSuiteEnabled())
 | 
			
		||||
      await context.folderSetupFn(async (dir) => {
 | 
			
		||||
        const bracketDir = path.join(dir, 'bracket')
 | 
			
		||||
        await fsp.mkdir(bracketDir, { recursive: true })
 | 
			
		||||
 | 
			
		||||
@ -12,7 +12,6 @@ import {
 | 
			
		||||
  TEST_COLORS,
 | 
			
		||||
  getMovementUtils,
 | 
			
		||||
  getUtils,
 | 
			
		||||
  orRunWhenFullSuiteEnabled,
 | 
			
		||||
} from '@e2e/playwright/test-utils'
 | 
			
		||||
import { expect, test } from '@e2e/playwright/zoo-test'
 | 
			
		||||
 | 
			
		||||
@ -189,7 +188,6 @@ sketch001 = startProfileAt([12.34, -12.34], sketch002)
 | 
			
		||||
    ).toBeVisible()
 | 
			
		||||
  })
 | 
			
		||||
  test('Can edit segments by dragging their handles', () => {
 | 
			
		||||
    test.fixme(orRunWhenFullSuiteEnabled())
 | 
			
		||||
    const doEditSegmentsByDraggingHandle = async (
 | 
			
		||||
      page: Page,
 | 
			
		||||
      homePage: HomePageFixture,
 | 
			
		||||
@ -1088,7 +1086,6 @@ profile001 = startProfileAt([${roundOff(scale * 69.6)}, ${roundOff(
 | 
			
		||||
    page,
 | 
			
		||||
    homePage,
 | 
			
		||||
  }) => {
 | 
			
		||||
    test.fixme(orRunWhenFullSuiteEnabled())
 | 
			
		||||
    /**
 | 
			
		||||
     * Tests the following things
 | 
			
		||||
     * 1) The the planes are there on load because the scene is empty
 | 
			
		||||
@ -1402,7 +1399,6 @@ test.describe('multi-profile sketching', () => {
 | 
			
		||||
    homePage,
 | 
			
		||||
    cmdBar,
 | 
			
		||||
  }) => {
 | 
			
		||||
    test.fixme(orRunWhenFullSuiteEnabled())
 | 
			
		||||
    // We seed the scene with a single offset plane
 | 
			
		||||
    await context.addInitScript(() => {
 | 
			
		||||
      localStorage.setItem(
 | 
			
		||||
@ -2771,7 +2767,6 @@ loft([profile001, profile002])
 | 
			
		||||
    page,
 | 
			
		||||
    homePage,
 | 
			
		||||
  }) => {
 | 
			
		||||
    test.fixme(orRunWhenFullSuiteEnabled())
 | 
			
		||||
    await page.addInitScript(async () => {
 | 
			
		||||
      localStorage.setItem(
 | 
			
		||||
        'persistCode',
 | 
			
		||||
 | 
			
		||||
@ -15,7 +15,6 @@ import {
 | 
			
		||||
  getUtils,
 | 
			
		||||
  headerMasks,
 | 
			
		||||
  networkingMasks,
 | 
			
		||||
  orRunWhenFullSuiteEnabled,
 | 
			
		||||
  settingsToToml,
 | 
			
		||||
} from '@e2e/playwright/test-utils'
 | 
			
		||||
import { expect, test } from '@e2e/playwright/zoo-test'
 | 
			
		||||
@ -1046,7 +1045,6 @@ test.describe('Grid visibility', { tag: '@snapshot' }, () => {
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
test('theme persists', async ({ page, context }) => {
 | 
			
		||||
  test.fixme(orRunWhenFullSuiteEnabled())
 | 
			
		||||
  const u = await getUtils(page)
 | 
			
		||||
  await context.addInitScript(async () => {
 | 
			
		||||
    localStorage.setItem(
 | 
			
		||||
 | 
			
		||||
@ -1,11 +1,7 @@
 | 
			
		||||
import type { EngineCommand } from '@src/lang/std/artifactGraph'
 | 
			
		||||
import { uuidv4 } from '@src/lib/utils'
 | 
			
		||||
 | 
			
		||||
import {
 | 
			
		||||
  commonPoints,
 | 
			
		||||
  getUtils,
 | 
			
		||||
  orRunWhenFullSuiteEnabled,
 | 
			
		||||
} from '@e2e/playwright/test-utils'
 | 
			
		||||
import { commonPoints, getUtils } from '@e2e/playwright/test-utils'
 | 
			
		||||
import { expect, test } from '@e2e/playwright/zoo-test'
 | 
			
		||||
 | 
			
		||||
test.describe(
 | 
			
		||||
@ -18,7 +14,6 @@ test.describe(
 | 
			
		||||
      'simulate network down and network little widget',
 | 
			
		||||
      { tag: '@skipLocalEngine' },
 | 
			
		||||
      async ({ page, homePage }) => {
 | 
			
		||||
        test.fixme(orRunWhenFullSuiteEnabled())
 | 
			
		||||
        const u = await getUtils(page)
 | 
			
		||||
        await page.setBodyDimensions({ width: 1200, height: 500 })
 | 
			
		||||
 | 
			
		||||
@ -95,7 +90,6 @@ test.describe(
 | 
			
		||||
      'Engine disconnect & reconnect in sketch mode',
 | 
			
		||||
      { tag: '@skipLocalEngine' },
 | 
			
		||||
      async ({ page, homePage, toolbar, scene, cmdBar }) => {
 | 
			
		||||
        test.fixme(orRunWhenFullSuiteEnabled())
 | 
			
		||||
        const networkToggle = page.getByTestId('network-toggle')
 | 
			
		||||
 | 
			
		||||
        const u = await getUtils(page)
 | 
			
		||||
 | 
			
		||||
@ -1,5 +1,4 @@
 | 
			
		||||
import {
 | 
			
		||||
  orRunWhenFullSuiteEnabled,
 | 
			
		||||
  runningOnLinux,
 | 
			
		||||
  runningOnMac,
 | 
			
		||||
  runningOnWindows,
 | 
			
		||||
@ -62,38 +61,3 @@ describe('platform detection utilities', () => {
 | 
			
		||||
    })
 | 
			
		||||
  })
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
describe('utility to bypass unreliable tests', () => {
 | 
			
		||||
  const originalEnv = { ...process.env }
 | 
			
		||||
 | 
			
		||||
  afterAll(() => {
 | 
			
		||||
    process.env = { ...originalEnv }
 | 
			
		||||
  })
 | 
			
		||||
 | 
			
		||||
  it('always runs them on dedicated branch', () => {
 | 
			
		||||
    process.env.GITHUB_EVENT_NAME = 'push'
 | 
			
		||||
    process.env.GITHUB_REF = 'refs/heads/all-e2e'
 | 
			
		||||
    process.env.GITHUB_HEAD_REF = ''
 | 
			
		||||
    process.env.GITHUB_BASE_REF = ''
 | 
			
		||||
    const shouldSkip = orRunWhenFullSuiteEnabled()
 | 
			
		||||
    expect(shouldSkip).toBe(false)
 | 
			
		||||
  })
 | 
			
		||||
 | 
			
		||||
  it('skips them on the main branch', () => {
 | 
			
		||||
    process.env.GITHUB_EVENT_NAME = 'push'
 | 
			
		||||
    process.env.GITHUB_REF = 'refs/heads/main'
 | 
			
		||||
    process.env.GITHUB_HEAD_REF = ''
 | 
			
		||||
    process.env.GITHUB_BASE_REF = ''
 | 
			
		||||
    const shouldSkip = orRunWhenFullSuiteEnabled()
 | 
			
		||||
    expect(shouldSkip).toBe(true)
 | 
			
		||||
  })
 | 
			
		||||
 | 
			
		||||
  it('skips them on pull requests', () => {
 | 
			
		||||
    process.env.GITHUB_EVENT_NAME = 'pull_request'
 | 
			
		||||
    process.env.GITHUB_REF = 'refs/pull/5883/merge'
 | 
			
		||||
    process.env.GITHUB_HEAD_REF = 'my-branch'
 | 
			
		||||
    process.env.GITHUB_BASE_REF = 'main'
 | 
			
		||||
    const shouldSkip = orRunWhenFullSuiteEnabled()
 | 
			
		||||
    expect(shouldSkip).toBe(true)
 | 
			
		||||
  })
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
@ -75,11 +75,6 @@ export function runningOnWindows() {
 | 
			
		||||
  return process.platform === 'win32'
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export function orRunWhenFullSuiteEnabled() {
 | 
			
		||||
  const branch = process.env.GITHUB_REF?.replace('refs/heads/', '')
 | 
			
		||||
  return branch !== 'all-e2e'
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
async function waitForPageLoadWithRetry(page: Page) {
 | 
			
		||||
  await expect(async () => {
 | 
			
		||||
    await page.goto('/')
 | 
			
		||||
 | 
			
		||||
@ -1,7 +1,7 @@
 | 
			
		||||
import type { EngineCommand } from '@src/lang/std/artifactGraph'
 | 
			
		||||
import { uuidv4 } from '@src/lib/utils'
 | 
			
		||||
 | 
			
		||||
import { getUtils, orRunWhenFullSuiteEnabled } from '@e2e/playwright/test-utils'
 | 
			
		||||
import { getUtils } from '@e2e/playwright/test-utils'
 | 
			
		||||
import { expect, test } from '@e2e/playwright/zoo-test'
 | 
			
		||||
 | 
			
		||||
test.describe('Testing Camera Movement', () => {
 | 
			
		||||
@ -190,7 +190,6 @@ test.describe('Testing Camera Movement', () => {
 | 
			
		||||
    page,
 | 
			
		||||
    homePage,
 | 
			
		||||
  }) => {
 | 
			
		||||
    test.fixme(orRunWhenFullSuiteEnabled())
 | 
			
		||||
    // start new sketch pan and zoom before exiting, when exiting the sketch should stay in the same place
 | 
			
		||||
    // than zoom and pan outside of sketch mode and enter again and it should not change from where it is
 | 
			
		||||
    // than again for sketching
 | 
			
		||||
 | 
			
		||||
@ -5,7 +5,6 @@ import * as fsp from 'fs/promises'
 | 
			
		||||
import {
 | 
			
		||||
  TEST_COLORS,
 | 
			
		||||
  getUtils,
 | 
			
		||||
  orRunWhenFullSuiteEnabled,
 | 
			
		||||
  pollEditorLinesSelectedLength,
 | 
			
		||||
} from '@e2e/playwright/test-utils'
 | 
			
		||||
import { expect, test } from '@e2e/playwright/zoo-test'
 | 
			
		||||
@ -1018,7 +1017,6 @@ part002 = startSketchOn(XZ)
 | 
			
		||||
    scene,
 | 
			
		||||
    cmdBar,
 | 
			
		||||
  }) => {
 | 
			
		||||
    test.fixme(orRunWhenFullSuiteEnabled())
 | 
			
		||||
    test.setTimeout(70_000)
 | 
			
		||||
    await page.addInitScript(async () => {
 | 
			
		||||
      localStorage.setItem(
 | 
			
		||||
 | 
			
		||||
@ -1,4 +1,4 @@
 | 
			
		||||
import { getUtils, orRunWhenFullSuiteEnabled } from '@e2e/playwright/test-utils'
 | 
			
		||||
import { getUtils } from '@e2e/playwright/test-utils'
 | 
			
		||||
import { expect, test } from '@e2e/playwright/zoo-test'
 | 
			
		||||
 | 
			
		||||
test.describe('Test toggling perspective', () => {
 | 
			
		||||
@ -7,7 +7,6 @@ test.describe('Test toggling perspective', () => {
 | 
			
		||||
    homePage,
 | 
			
		||||
    toolbar,
 | 
			
		||||
  }) => {
 | 
			
		||||
    test.fixme(orRunWhenFullSuiteEnabled())
 | 
			
		||||
    const u = await getUtils(page)
 | 
			
		||||
 | 
			
		||||
    // Locators and constants
 | 
			
		||||
 | 
			
		||||
@ -8,7 +8,6 @@ import type { ElectronZoo } from '@e2e/playwright/fixtures/fixtureSetup'
 | 
			
		||||
import {
 | 
			
		||||
  executorInputPath,
 | 
			
		||||
  getUtils,
 | 
			
		||||
  orRunWhenFullSuiteEnabled,
 | 
			
		||||
  runningOnWindows,
 | 
			
		||||
  testsInputPath,
 | 
			
		||||
} from '@e2e/playwright/test-utils'
 | 
			
		||||
@ -89,7 +88,6 @@ test.describe('Testing loading external models', () => {
 | 
			
		||||
    { tag: '@electron' },
 | 
			
		||||
    async ({ editor, context, page, scene, cmdBar, toolbar }) => {
 | 
			
		||||
      if (runningOnWindows()) {
 | 
			
		||||
        test.fixme(orRunWhenFullSuiteEnabled())
 | 
			
		||||
      }
 | 
			
		||||
      const { dir } = await context.folderSetupFn(async (dir) => {
 | 
			
		||||
        const bracketDir = join(dir, 'bracket')
 | 
			
		||||
 | 
			
		||||
@ -3,18 +3,11 @@ import type { LineInputsType } from '@src/lang/std/sketchcombos'
 | 
			
		||||
import { uuidv4 } from '@src/lib/utils'
 | 
			
		||||
 | 
			
		||||
import type { EditorFixture } from '@e2e/playwright/fixtures/editorFixture'
 | 
			
		||||
import {
 | 
			
		||||
  deg,
 | 
			
		||||
  getUtils,
 | 
			
		||||
  orRunWhenFullSuiteEnabled,
 | 
			
		||||
  wiggleMove,
 | 
			
		||||
} from '@e2e/playwright/test-utils'
 | 
			
		||||
import { deg, getUtils, wiggleMove } from '@e2e/playwright/test-utils'
 | 
			
		||||
import { expect, test } from '@e2e/playwright/zoo-test'
 | 
			
		||||
 | 
			
		||||
test.describe('Testing segment overlays', () => {
 | 
			
		||||
  test('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', () => {
 | 
			
		||||
    // TODO: fix this test on mac after the electron migration
 | 
			
		||||
    test.fixme(orRunWhenFullSuiteEnabled())
 | 
			
		||||
  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', () => {
 | 
			
		||||
    /**
 | 
			
		||||
     * Clicks on an constrained element
 | 
			
		||||
     * @param {Page} page - The page to perform the action on
 | 
			
		||||
@ -370,7 +363,6 @@ test.describe('Testing segment overlays', () => {
 | 
			
		||||
      editor,
 | 
			
		||||
      homePage,
 | 
			
		||||
    }) => {
 | 
			
		||||
      test.fixme(orRunWhenFullSuiteEnabled())
 | 
			
		||||
      await page.addInitScript(async () => {
 | 
			
		||||
        localStorage.setItem(
 | 
			
		||||
          'persistCode',
 | 
			
		||||
 | 
			
		||||
@ -2,11 +2,7 @@ import type { Coords2d } from '@src/lang/std/sketch'
 | 
			
		||||
import { KCL_DEFAULT_LENGTH } from '@src/lib/constants'
 | 
			
		||||
import { uuidv4 } from '@src/lib/utils'
 | 
			
		||||
 | 
			
		||||
import {
 | 
			
		||||
  commonPoints,
 | 
			
		||||
  getUtils,
 | 
			
		||||
  orRunWhenFullSuiteEnabled,
 | 
			
		||||
} from '@e2e/playwright/test-utils'
 | 
			
		||||
import { commonPoints, getUtils } from '@e2e/playwright/test-utils'
 | 
			
		||||
import { expect, test } from '@e2e/playwright/zoo-test'
 | 
			
		||||
 | 
			
		||||
test.describe('Testing selections', () => {
 | 
			
		||||
@ -445,7 +441,6 @@ profile003 = startProfileAt([40.16, -120.48], sketch006)
 | 
			
		||||
    cmdBar,
 | 
			
		||||
    editor,
 | 
			
		||||
  }) => {
 | 
			
		||||
    test.fixme(orRunWhenFullSuiteEnabled())
 | 
			
		||||
    test.setTimeout(90_000)
 | 
			
		||||
    const u = await getUtils(page)
 | 
			
		||||
    await page.addInitScript(async () => {
 | 
			
		||||
 | 
			
		||||
@ -21,7 +21,6 @@ import {
 | 
			
		||||
  executorInputPath,
 | 
			
		||||
  getUtils,
 | 
			
		||||
  networkingMasks,
 | 
			
		||||
  orRunWhenFullSuiteEnabled,
 | 
			
		||||
  tomlToSettings,
 | 
			
		||||
} from '@e2e/playwright/test-utils'
 | 
			
		||||
import { expect, test } from '@e2e/playwright/zoo-test'
 | 
			
		||||
@ -73,7 +72,6 @@ test.describe(
 | 
			
		||||
      page,
 | 
			
		||||
      homePage,
 | 
			
		||||
    }) => {
 | 
			
		||||
      test.fixme(orRunWhenFullSuiteEnabled())
 | 
			
		||||
      const u = await getUtils(page)
 | 
			
		||||
      await test.step(`Setup`, async () => {
 | 
			
		||||
        await page.setBodyDimensions({ width: 1200, height: 500 })
 | 
			
		||||
@ -283,7 +281,6 @@ test.describe(
 | 
			
		||||
      `Project settings override user settings on desktop`,
 | 
			
		||||
      { tag: ['@electron'] },
 | 
			
		||||
      async ({ context, page }, testInfo) => {
 | 
			
		||||
        test.fixme(orRunWhenFullSuiteEnabled())
 | 
			
		||||
        const projectName = 'bracket'
 | 
			
		||||
        const { dir: projectDirName } = await context.folderSetupFn(
 | 
			
		||||
          async (dir) => {
 | 
			
		||||
@ -432,7 +429,6 @@ test.describe(
 | 
			
		||||
        tag: '@electron',
 | 
			
		||||
      },
 | 
			
		||||
      async ({ context, page, tronApp }, testInfo) => {
 | 
			
		||||
        test.fixme(orRunWhenFullSuiteEnabled())
 | 
			
		||||
        if (!tronApp) {
 | 
			
		||||
          fail()
 | 
			
		||||
        }
 | 
			
		||||
@ -493,7 +489,6 @@ test.describe(
 | 
			
		||||
      'project settings reload on external change',
 | 
			
		||||
      { tag: '@electron' },
 | 
			
		||||
      async ({ context, page }, testInfo) => {
 | 
			
		||||
        test.fixme(orRunWhenFullSuiteEnabled())
 | 
			
		||||
        const { dir: projectDirName } = await context.folderSetupFn(
 | 
			
		||||
          async () => {}
 | 
			
		||||
        )
 | 
			
		||||
@ -1031,7 +1026,6 @@ fn cube`
 | 
			
		||||
      toolbar,
 | 
			
		||||
      cmdBar,
 | 
			
		||||
    }, testInfo) => {
 | 
			
		||||
      test.fixme(orRunWhenFullSuiteEnabled())
 | 
			
		||||
      await context.folderSetupFn(async (dir) => {
 | 
			
		||||
        const projectDir = join(dir, 'project-000')
 | 
			
		||||
        await fsp.mkdir(projectDir, { recursive: true })
 | 
			
		||||
 | 
			
		||||
@ -2,11 +2,7 @@ import fs from 'fs'
 | 
			
		||||
import { join } from 'path'
 | 
			
		||||
import type { Page } from '@playwright/test'
 | 
			
		||||
 | 
			
		||||
import {
 | 
			
		||||
  createProject,
 | 
			
		||||
  getUtils,
 | 
			
		||||
  orRunWhenFullSuiteEnabled,
 | 
			
		||||
} from '@e2e/playwright/test-utils'
 | 
			
		||||
import { createProject, getUtils } from '@e2e/playwright/test-utils'
 | 
			
		||||
import { expect, test } from '@e2e/playwright/zoo-test'
 | 
			
		||||
 | 
			
		||||
test.describe('Text-to-CAD tests', () => {
 | 
			
		||||
@ -440,7 +436,6 @@ test.describe('Text-to-CAD tests', () => {
 | 
			
		||||
    page,
 | 
			
		||||
    homePage,
 | 
			
		||||
  }) => {
 | 
			
		||||
    test.fixme(orRunWhenFullSuiteEnabled())
 | 
			
		||||
    // Let this test run longer since we've seen it timeout.
 | 
			
		||||
    test.setTimeout(180_000)
 | 
			
		||||
 | 
			
		||||
@ -628,7 +623,6 @@ test(
 | 
			
		||||
  'Text-to-CAD functionality',
 | 
			
		||||
  { tag: '@electron' },
 | 
			
		||||
  async ({ context, page }, testInfo) => {
 | 
			
		||||
    test.fixme(orRunWhenFullSuiteEnabled())
 | 
			
		||||
    const projectName = 'project-000'
 | 
			
		||||
    const prompt = 'lego 2x4'
 | 
			
		||||
    const textToCadFileName = 'lego-2x4.kcl'
 | 
			
		||||
 | 
			
		||||
@ -1,13 +1,7 @@
 | 
			
		||||
import {
 | 
			
		||||
  doExport,
 | 
			
		||||
  getUtils,
 | 
			
		||||
  makeTemplate,
 | 
			
		||||
  orRunWhenFullSuiteEnabled,
 | 
			
		||||
} from '@e2e/playwright/test-utils'
 | 
			
		||||
import { doExport, getUtils, makeTemplate } from '@e2e/playwright/test-utils'
 | 
			
		||||
import { expect, test } from '@e2e/playwright/zoo-test'
 | 
			
		||||
 | 
			
		||||
test('Units menu', async ({ page, homePage }) => {
 | 
			
		||||
  test.fixme(orRunWhenFullSuiteEnabled())
 | 
			
		||||
  await page.setBodyDimensions({ width: 1200, height: 500 })
 | 
			
		||||
  await homePage.goToModelingScene()
 | 
			
		||||
 | 
			
		||||
@ -263,7 +257,6 @@ test('Basic default modeling and sketch hotkeys work', async ({
 | 
			
		||||
  page,
 | 
			
		||||
  homePage,
 | 
			
		||||
}) => {
 | 
			
		||||
  test.fixme(orRunWhenFullSuiteEnabled())
 | 
			
		||||
  const u = await getUtils(page)
 | 
			
		||||
 | 
			
		||||
  // This test can run long if it takes a little too long to load
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user