diff --git a/.github/workflows/playwright.yml b/.github/workflows/playwright.yml index 052a56818..a6ede5eab 100644 --- a/.github/workflows/playwright.yml +++ b/.github/workflows/playwright.yml @@ -423,14 +423,14 @@ jobs: - uses: actions/upload-artifact@v4 if: ${{ !cancelled() && (success() || failure()) }} with: - name: test-results-electron-${{ github.sha }} + name: test-results-electron-${{ matrix.os }}-${{ github.sha }} path: test-results/ retention-days: 30 overwrite: true - uses: actions/upload-artifact@v4 if: ${{ !cancelled() && (success() || failure()) }} with: - name: playwright-report-electron-${{ github.sha }} + name: playwright-report-electron-${{ matrix.os }}-${{ github.sha }} path: playwright-report/ retention-days: 30 overwrite: true diff --git a/README.md b/README.md index e22dfd461..2987dd04a 100644 --- a/README.md +++ b/README.md @@ -110,7 +110,6 @@ Which commands from setup are one off vs need to be run every time? The following will need to be run when checking out a new commit and guarantees the build is not stale: ```bash yarn install -yarn wasm-prep yarn build:wasm-dev # or yarn build:wasm for slower but more production-like build yarn start # or yarn build:local && yarn serve for slower but more production-like build ``` @@ -374,3 +373,14 @@ yarn wdio run wdio.conf.ts ## KCL For how to contribute to KCL, [see our KCL README](https://github.com/KittyCAD/modeling-app/tree/main/src/wasm-lib/kcl). + + +- Theme removed as a project setting +- Rename kcl Value to Expr, MemoryItem to KclValue +- Remove ProgramReturn +- Macro to make KCL snapshot tests easier +- Add logical not operator using bang ! +- ensure we never execute over ourselves +- Unify KCL expression execution (2 + draw() didn't work) +- Text-CAD-integration + diff --git a/e2e/playwright/text-to-cad-tests.spec.ts b/e2e/playwright/text-to-cad-tests.spec.ts index a19e0bcfc..3a22036a9 100644 --- a/e2e/playwright/text-to-cad-tests.spec.ts +++ b/e2e/playwright/text-to-cad-tests.spec.ts @@ -6,6 +6,8 @@ import { setupElectron, createProjectAndRenameIt, } from './test-utils' +import { join } from 'path' +import fs from 'fs' test.beforeEach(async ({ context, page }) => { await setup(context, page) @@ -694,10 +696,9 @@ test( 'Text-to-CAD functionality', { tag: '@electron' }, async ({ browserName }, testInfo) => { - const { electronApp, page } = await setupElectron({ - testInfo, - folderSetupFn: async () => {}, - }) + const { electronApp, page, dir } = await setupElectron({ testInfo }) + const fileExists = () => + fs.existsSync(join(dir, 'test-000', 'lego-2x4.kcl')) await page.setViewportSize({ width: 1200, height: 500 }) @@ -721,6 +722,7 @@ test( // File is considered created if it shows up in the Project Files pane const file = page.getByRole('button', { name: 'lego-2x4.kcl' }) await expect(file).toBeVisible({ timeout: 20_000 }) + expect(fileExists()).toBeTruthy() }) await test.step(`Test file navigation`, async () => { @@ -741,6 +743,7 @@ test( `Successfully deleted file "lego-2x4.kcl"` ) await expect(submittingToastMessage).toBeVisible() + expect(fileExists()).toBeFalsy() }) await electronApp.close() diff --git a/package.json b/package.json index f1c8023d9..e32316ae4 100644 --- a/package.json +++ b/package.json @@ -83,11 +83,10 @@ "fmt-check": "prettier --check ./src *.ts *.json *.js ./e2e ./packages", "fetch:wasm": "./get-latest-wasm-bundle.sh", "isomorphic-copy-wasm": "(copy src/wasm-lib/pkg/wasm_lib_bg.wasm public || cp src/wasm-lib/pkg/wasm_lib_bg.wasm public)", - "build:wasm-dev": "(cd src/wasm-lib && wasm-pack build --dev --target web --out-dir pkg && cargo test -p kcl-lib export_bindings) && yarn isomorphic-copy-wasm && yarn fmt", - "build:wasm": "cd src/wasm-lib && wasm-pack build --release --target web --out-dir pkg && cargo test -p kcl-lib export_bindings && cd ../.. && yarn isomorphic-copy-wasm && yarn fmt", - "build:wasm-clean": "yarn wasm-prep && yarn build:wasm", + "build:wasm-dev": "yarn wasm-prep && (cd src/wasm-lib && wasm-pack build --dev --target web --out-dir pkg && cargo test -p kcl-lib export_bindings) && yarn isomorphic-copy-wasm && yarn fmt", + "build:wasm": "yarn wasm-prep && cd src/wasm-lib && wasm-pack build --release --target web --out-dir pkg && cargo test -p kcl-lib export_bindings && cd ../.. && yarn isomorphic-copy-wasm && yarn fmt", "remove-importmeta": "sed -i 's/import.meta.url/window.location.origin/g' \"./src/wasm-lib/pkg/wasm_lib.js\"; sed -i '' 's/import.meta.url/window.location.origin/g' \"./src/wasm-lib/pkg/wasm_lib.js\" || echo \"sed for both mac and linux\"", - "wasm-prep": "rm -rf src/wasm-lib/pkg && mkdir src/wasm-lib/pkg && rm -rf src/wasm-lib/kcl/bindings", + "wasm-prep": "rimraf src/wasm-lib/pkg && mkdirp src/wasm-lib/pkg && rimraf src/wasm-lib/kcl/bindings", "lint": "eslint --fix src e2e", "bump-jsons": "echo \"$(jq --arg v \"$VERSION\" '.version=$v' package.json --indent 2)\" > package.json", "postinstall": "yarn xstate:typegen && ./node_modules/.bin/electron-rebuild",