From 098fa2b5c9867e46ec55e2e5b53b9a70ce8b8edf Mon Sep 17 00:00:00 2001 From: Kevin Nadro Date: Tue, 5 Nov 2024 14:10:00 -0500 Subject: [PATCH] chore: implementing kclsamples in stand alone unit tests (#4358) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore: implementing kclsamples in stand alone unit tests * fix: fmt, lint, and tsc * A snapshot a day keeps the bugs away! 📷🐛 (OS: windows-latest) * fix: fixed program memory and test file pattern. Don't know how to exclude though? * fix: trying to fix the exclude logic * A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu-latest) * fix: bump CI * fix:typo * fix: had conflicting filters ope, now fixed --------- Co-authored-by: github-actions[bot] Co-authored-by: 49fl --- .github/workflows/static-analysis.yml | 25 +++++ ...Millimeter-scale-2-Google-Chrome-linux.png | Bin 51830 -> 51737 bytes package.json | 6 +- src/lang/kclSamples.test.ts | 87 ++++++++++++++++++ 4 files changed, 116 insertions(+), 2 deletions(-) create mode 100644 src/lang/kclSamples.test.ts diff --git a/.github/workflows/static-analysis.yml b/.github/workflows/static-analysis.yml index 155160e88..8908acd98 100644 --- a/.github/workflows/static-analysis.yml +++ b/.github/workflows/static-analysis.yml @@ -81,6 +81,31 @@ jobs: - name: Run codespell run: codespell --config .codespellrc # Edit this file to tweak the typo list and other configuration. + yarn-unit-test-kcl-samples: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - uses: actions/setup-node@v4 + with: + node-version-file: '.nvmrc' + cache: 'yarn' + + - run: yarn install + - run: yarn build:wasm + + - run: yarn simpleserver:bg + if: ${{ github.event_name != 'release' && github.event_name != 'schedule' }} + + - name: Install Chromium Browser + if: ${{ github.event_name != 'release' && github.event_name != 'schedule' }} + run: yarn playwright install chromium --with-deps + + - name: run unit tests for kcl samples + if: ${{ github.event_name != 'release' && github.event_name != 'schedule' }} + run: yarn test:unit:kcl-samples + env: + VITE_KC_DEV_TOKEN: ${{ secrets.KITTYCAD_API_TOKEN_DEV }} yarn-unit-test: runs-on: ubuntu-latest diff --git a/e2e/playwright/snapshot-tests.spec.ts-snapshots/Client-side-scene-scale-should-match-engine-scale-Millimeter-scale-2-Google-Chrome-linux.png b/e2e/playwright/snapshot-tests.spec.ts-snapshots/Client-side-scene-scale-should-match-engine-scale-Millimeter-scale-2-Google-Chrome-linux.png index 1ea5160b966acaa0ad160f255a077fd29c9e7580..3a24ee84ce3da1f83fdbe015b3a360ce8edb9e48 100644 GIT binary patch literal 51737 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 diff --git a/package.json b/package.json index 8dcb66e2a..fc0cc2156 100644 --- a/package.json +++ b/package.json @@ -105,7 +105,8 @@ "tronb:package": "electron-builder --config electron-builder.yml", "test-setup": "yarn install && yarn build:wasm", "test": "vitest --mode development", - "test:unit": "vitest run --mode development", + "test:unit": "vitest run --mode development --exclude **/kclSamples.test.ts", + "test:unit:kcl-samples": "vitest run --mode development ./src/lang/kclSamples.test.ts", "test:playwright:browser:chrome": "playwright test --project='Google Chrome' --config=playwright.ci.config.ts --grep-invert='@snapshot|@electron'", "test:playwright:browser:chrome:windows": "playwright test --project=\"Google Chrome\" --config=playwright.ci.config.ts --grep-invert=\"@snapshot|@electron|@skipWin\"", "test:playwright:browser:chrome:ubuntu": "playwright test --project='Google Chrome' --config=playwright.ci.config.ts --grep-invert='@snapshot|@electron|@skipLinux'", @@ -117,7 +118,8 @@ "test:playwright:electron:windows:local": "yarn tron:package && NODE_ENV=development playwright test --config=playwright.electron.config.ts --grep=@electron --grep-invert=@skipWin", "test:playwright:electron:macos:local": "yarn tron:package && NODE_ENV=development playwright test --config=playwright.electron.config.ts --grep=@electron --grep-invert=@skipMacos", "test:playwright:electron:ubuntu:local": "yarn tron:package && NODE_ENV=development playwright test --config=playwright.electron.config.ts --grep=@electron --grep-invert=@skipLinux", - "test:unit:local": "yarn simpleserver:bg && yarn test:unit; kill-port 3000" + "test:unit:local": "yarn simpleserver:bg && yarn test:unit; kill-port 3000", + "test:unit:kcl-samples:local": "yarn simpleserver:bg && yarn test:unit:kcl-samples; kill-port 3000" }, "prettier": { "trailingComma": "es5", diff --git a/src/lang/kclSamples.test.ts b/src/lang/kclSamples.test.ts new file mode 100644 index 000000000..1e1a7d021 --- /dev/null +++ b/src/lang/kclSamples.test.ts @@ -0,0 +1,87 @@ +import { parse, initPromise, programMemoryInit } from './wasm' +import { enginelessExecutor } from '../lib/testHelpers' +import { assert } from 'vitest' +// These unit tests makes web requests to a public github repository. + +interface KclSampleFile { + file: string + title: string + filename: string + description: string +} + +beforeAll(async () => { + await initPromise +}) + +// Only used to actually fetch an older version of KCL code that will break in the parser. +/* eslint-disable @typescript-eslint/no-unused-vars */ +async function getBrokenSampleCodeForLocalTesting() { + const result = await fetch( + 'https://raw.githubusercontent.com/KittyCAD/kcl-samples/5ccd04a1773ebdbfd02684057917ce5dbe0eaab3/80-20-rail.kcl' + ) + const text = await result.text() + return text +} + +async function getKclSampleCodeFromGithub(file: string): Promise { + const result = await fetch( + `https://raw.githubusercontent.com/KittyCAD/kcl-samples/refs/heads/main/${file}/${file}.kcl` + ) + const text = await result.text() + return text +} + +async function getFileNamesFromManifestJSON(): Promise { + const result = await fetch( + 'https://raw.githubusercontent.com/KittyCAD/kcl-samples/refs/heads/main/manifest.json' + ) + const json = await result.json() + json.forEach((file: KclSampleFile) => { + const filenameWithoutExtension = file.file.split('.')[0] + file.filename = filenameWithoutExtension + }) + return json +} + +// Value to use across all tests! +let files: KclSampleFile[] = [] + +describe('Test KCL Samples from public Github repository', () => { + describe('When parsing source code', () => { + // THIS RUNS ACROSS OTHER TESTS! + it('should fetch files', async () => { + files = await getFileNamesFromManifestJSON() + }) + // Run through all of the files in the manifest json. This will allow us to be automatically updated + // with the latest changes in github. We won't be hard coding the filenames + it( + 'should run through all the files', + async () => { + for (let i = 0; i < files.length; i++) { + const file: KclSampleFile = files[i] + const code = await getKclSampleCodeFromGithub(file.filename) + const parsed = parse(code) + assert(!(parsed instanceof Error)) + } + }, + files.length * 1000 + ) + }) + + describe('when performing enginelessExecutor', () => { + it( + 'should run through all the files', + async () => { + for (let i = 0; i < files.length; i++) { + const file: KclSampleFile = files[i] + const code = await getKclSampleCodeFromGithub(file.filename) + const parsed = parse(code) + assert(!(parsed instanceof Error)) + await enginelessExecutor(parsed, programMemoryInit()) + } + }, + files.length * 1000 + ) + }) +})