Skip to content

fix: resolve navigation hang on Windows when using intercept with object mock #4180

fix: resolve navigation hang on Windows when using intercept with object mock

fix: resolve navigation hang on Windows when using intercept with object mock #4180

Workflow file for this run

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