Fix critical post-refactoring bugs: Jest TypeScript errors, shape zoom scaling, and LaTeX rendering issues #103
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Test | |
| on: | |
| push: | |
| branches: [ main ] | |
| pull_request: | |
| # Ensure we don't run multiple concurrent workflows on the same ref | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| env: | |
| NODE_VERSION: 20 | |
| jobs: | |
| unit-test: | |
| name: Unit Tests | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 3 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Use Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: ${{ env.NODE_VERSION }} | |
| cache: 'npm' | |
| cache-dependency-path: '**/package-lock.json' | |
| - name: Cache node_modules | |
| uses: actions/cache@v4 | |
| id: node-modules-cache | |
| with: | |
| path: node_modules | |
| key: ${{ runner.os }}-node-${{ env.NODE_VERSION }}.x-modules-${{ hashFiles('package.json', '**/package-lock.json') }} | |
| restore-keys: | | |
| ${{ runner.os }}-node-${{ env.NODE_VERSION }}.x-modules-${{ github.event.pull_request.base.ref || 'main' }} | |
| ${{ runner.os }}-node-${{ env.NODE_VERSION }}.x-modules-main | |
| ${{ runner.os }}-node-${{ env.NODE_VERSION }}.x-modules- | |
| - name: Install dependencies | |
| if: steps.node-modules-cache.outputs.cache-hit != 'true' | |
| run: | | |
| npm install --platform=linux --arch=x64 | |
| - name: Run Jest tests with coverage | |
| run: npm run test:coverage | |
| # - name: Upload coverage to Coveralls | |
| # uses: coverallsapp/github-action@v2 | |
| # with: | |
| # github-token: ${{ secrets.GITHUB_TOKEN }} | |
| # path-to-lcov: ./coverage/unit/lcov.info | |
| # flag-name: unit-tests | |
| e2e-test: | |
| name: E2E Tests | |
| timeout-minutes: 5 | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Use Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: ${{ env.NODE_VERSION }} | |
| cache: 'npm' | |
| cache-dependency-path: '**/package-lock.json' | |
| - name: Cache node_modules | |
| uses: actions/cache@v4 | |
| id: node-modules-cache | |
| with: | |
| path: node_modules | |
| key: ${{ runner.os }}-node-${{ env.NODE_VERSION }}.x-modules-${{ hashFiles('package.json', '**/package-lock.json') }} | |
| restore-keys: | | |
| ${{ runner.os }}-node-${{ env.NODE_VERSION }}.x-modules-${{ github.event.pull_request.base.ref || 'main' }} | |
| ${{ runner.os }}-node-${{ env.NODE_VERSION }}.x-modules-main | |
| ${{ runner.os }}-node-${{ env.NODE_VERSION }}.x-modules- | |
| - name: Install override dependencies | |
| run: | | |
| npm install --save-dev @rollup/rollup-linux-x64-gnu | |
| npm install --save-dev @swc/core | |
| - name: Cache Playwright browsers | |
| id: playwright-cache | |
| uses: actions/cache@v4 | |
| with: | |
| path: ~/.cache/ms-playwright | |
| key: ${{ runner.os }}-node-${{ env.NODE_VERSION }}-playwright-${{ hashFiles('package.json', '**/package-lock.json') }} | |
| restore-keys: | | |
| ${{ runner.os }}-node-${{ env.NODE_VERSION }}.x-playwright-${{ hashFiles('package.json', '**/package-lock.json') }} | |
| ${{ runner.os }}-node-${{ env.NODE_VERSION }}.x-playwright-${{ github.event.pull_request.base.ref || 'main' }} | |
| ${{ runner.os }}-node-${{ env.NODE_VERSION }}.x-playwright-main | |
| ${{ runner.os }}-node-${{ env.NODE_VERSION }}.x-playwright- | |
| - name: Install dependencies | |
| if: steps.node-modules-cache.outputs.cache-hit != 'true' | |
| run: | | |
| npm install --platform=linux --arch=x64 | |
| - name: Install Playwright | |
| if: steps.playwright-cache.outputs.cache-hit != 'true' | |
| run: npx playwright install chromium --with-deps | |
| - name: Run Playwright tests with coverage | |
| run: npm run e2e:coverage | |
| - name: Upload test results | |
| if: always() | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: playwright-report | |
| path: | | |
| playwright-report/ | |
| test-results/ | |
| retention-days: 30 | |
| # - name: Upload coverage to Coveralls | |
| # uses: coverallsapp/github-action@v2 | |
| # with: | |
| # github-token: ${{ secrets.GITHUB_TOKEN }} | |
| # path-to-lcov: ./coverage/e2e/lcov.info | |
| # flag-name: e2e-tests |