fix: resolve navigation hang on Windows when using intercept with object mock #4180
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: taiko | |
| on: | |
| push: | |
| branches: | |
| - master | |
| pull_request: | |
| branches: | |
| - master | |
| jobs: | |
| unit-tests: | |
| name: Unit tests - ${{ matrix.os }} - ${{ matrix.node_version }} | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| matrix: | |
| node_version: ['20', '22', '24', '25'] | |
| os: [ubuntu-22.04, windows-latest] | |
| fail-fast: false | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Use NodeJS ${{ matrix.node_version }} | |
| uses: actions/setup-node@v6 | |
| with: | |
| node-version: ${{ matrix.node_version }} | |
| check-latest: 'true' | |
| - name: install | |
| run: npm ci | |
| - name: install browser dependencies | |
| if: matrix.os == 'ubuntu-22.04' | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y libnss3 \ | |
| libatk1.0-0 \ | |
| libatk-bridge2.0-0 \ | |
| libxcomposite1 \ | |
| libcups2 \ | |
| libxrandr2 \ | |
| libpangocairo-1.0-0 \ | |
| libgtk-3-0 \ | |
| libdrm-dev \ | |
| libgbm-dev \ | |
| libasound-dev | |
| - name: Run Biome | |
| uses: biomejs/setup-biome@v2 | |
| - run: biome check packages/taiko | |
| - name: Run unit tests | |
| if: matrix.os != 'windows-latest' | |
| run: npm run test:unit:silent | |
| - name: Run unit tests (windows) | |
| if: matrix.os == 'windows-latest' | |
| uses: nick-fields/retry@v3 | |
| with: | |
| timeout_minutes: 10 | |
| max_attempts: 2 | |
| on_retry_command: taskkill /F /IM chrome.exe /T 2>nul & exit 0 | |
| command: npm run test:unit:silent | |
| functional-tests: | |
| needs: unit-tests | |
| name: FTs - NodeJS ${{ matrix.node_version }} & ${{ matrix.os }} | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| matrix: | |
| node_version: ['20', '22', '24', '25'] | |
| os: [ubuntu-22.04, windows-latest] | |
| fail-fast: false | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Use NodeJS ${{ matrix.node_version }} | |
| uses: actions/setup-node@v6 | |
| with: | |
| node-version: ${{ matrix.node_version }} | |
| check-latest: 'true' | |
| - name: install | |
| run: npm ci | |
| - name: install browser dependencies | |
| if: matrix.os == 'ubuntu-22.04' | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y \ | |
| libnss3 \ | |
| libatk1.0-0 \ | |
| libatk-bridge2.0-0 \ | |
| libxcomposite1 \ | |
| libcups2 \ | |
| libxrandr2 \ | |
| libpangocairo-1.0-0 \ | |
| libgtk-3-0 \ | |
| libdrm-dev \ | |
| libgbm-dev \ | |
| libasound-dev | |
| - name: functional-tests | |
| if: matrix.os != 'windows-latest' | |
| run: npm run test-functional | |
| - name: functional-tests (windows) | |
| if: matrix.os == 'windows-latest' | |
| uses: nick-fields/retry@v3 | |
| with: | |
| timeout_minutes: 15 | |
| max_attempts: 2 | |
| command: npm run test-functional | |
| - name: Upload html report | |
| uses: actions/upload-artifact@v6 | |
| if: failure() | |
| with: | |
| name: ft-reports-${{ matrix.os }}-${{ matrix.node_version }} | |
| path: tests/functional-tests/reports/html-report | |
| - name: Upload logs | |
| uses: actions/upload-artifact@v6 | |
| if: failure() | |
| with: | |
| name: ft-logs-${{ matrix.os }}-${{ matrix.node_version }} | |
| path: tests/functional-tests/logs | |
| functional-tests-headful: | |
| needs: unit-tests | |
| name: FT in linux-headful - ${{ matrix.node_version }} | |
| runs-on: ubuntu-22.04 | |
| strategy: | |
| matrix: | |
| node_version: ['20', '22', '24', '25'] | |
| fail-fast: false | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Use Node.js | |
| uses: actions/setup-node@v6 | |
| with: | |
| node-version: ${{ matrix.node_version }} | |
| check-latest: 'true' | |
| - name: install | |
| run: npm ci | |
| - name: install browser dependencies | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y \ | |
| libnss3 \ | |
| libatk1.0-0 \ | |
| libatk-bridge2.0-0 \ | |
| libxcomposite1 \ | |
| libcups2 \ | |
| libxrandr2 \ | |
| libpangocairo-1.0-0 \ | |
| libgtk-3-0 \ | |
| libdrm-dev \ | |
| libgbm-dev \ | |
| libasound-dev | |
| - name: install xvfb | |
| run: sudo apt install xvfb | |
| - name: functional-tests-headful | |
| env: | |
| headless: false | |
| TAIKO_HIGHLIGHT_ON_ACTION: false | |
| run: xvfb-run npm run test-functional --workspace=tests | |
| - name: Upload html report | |
| uses: actions/upload-artifact@v6 | |
| if: failure() | |
| with: | |
| name: ft-reports-linux-headful-${{ matrix.node_version }} | |
| path: tests/functional-tests/reports/html-report | |
| - name: Upload logs | |
| uses: actions/upload-artifact@v6 | |
| if: failure() | |
| with: | |
| name: ft-logs-linux-headful-${{ matrix.node_version }} | |
| path: tests/functional-tests/logs | |
| docs-tests: | |
| needs: unit-tests | |
| name: Docs tests - ${{ matrix.node_version }} | |
| runs-on: ubuntu-22.04 | |
| strategy: | |
| matrix: | |
| node_version: ['20', '22', '24', '25'] | |
| fail-fast: false | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Use Node.js | |
| uses: actions/setup-node@v6 | |
| with: | |
| node-version: ${{ matrix.node_version }} | |
| check-latest: 'true' | |
| - name: install | |
| run: npm ci | |
| - name: install browser dependencies | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y \ | |
| libnss3 \ | |
| libatk1.0-0 \ | |
| libatk-bridge2.0-0 \ | |
| libxcomposite1 \ | |
| libcups2 \ | |
| libxrandr2 \ | |
| libpangocairo-1.0-0 \ | |
| libgtk-3-0 \ | |
| libdrm-dev \ | |
| libgbm-dev \ | |
| libasound-dev | |
| - name: test-docs | |
| run: npm run test-docs --workspace=tests | |
| - name: Upload html report | |
| uses: actions/upload-artifact@v6 | |
| if: failure() | |
| with: | |
| name: docs-tests-reports-${{ matrix.node_version }} | |
| path: tests/docs-tests/gauge/reports/html-report | |
| - name: Upload logs | |
| uses: actions/upload-artifact@v6 | |
| if: failure() | |
| with: | |
| name: docs-tests-logs-${{ matrix.node_version }} | |
| path: tests/docs-tests/gauge/logs |