Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
5540ebd
Revert "fix: calibrate errors"
shadowusr Jun 16, 2026
ba99d2f
feat!: implement new assertView version
shadowusr Nov 27, 2025
90145da
fix: fix image decoding issues and safe area computation
shadowusr Feb 5, 2026
969e5cb
fix: revert rounding changes
shadowusr Feb 6, 2026
3805d68
feat: implement disableHover, improve safeArea computation and other …
shadowusr Apr 9, 2026
bd8f184
feat: implement type-safe isomorphic coords helpers (#1233)
shadowusr Apr 16, 2026
78ed325
refactor: refactor client-bridge to support multiple instances and na…
shadowusr Apr 16, 2026
ae138de
feat: rewrite client-scripts to typescript and refactor them (#1236)
shadowusr Apr 16, 2026
c7d94af
test: implement browser-env tests on client-scripts (#1237)
shadowusr Apr 16, 2026
143fac4
feat: rewrite composite-image and implement robust unit tests (#1238)
shadowusr Apr 18, 2026
9f8661a
feat: improve calibrator to work correctly on ios simulators and came…
shadowusr Apr 18, 2026
4c22b41
feat: improve and refactor screen-shooter and split it into 3 version…
shadowusr Apr 19, 2026
3c3f70d
test: implement screen-shooter integration tests (#1241)
shadowusr Apr 19, 2026
37580cb
fix: fix remaining issues and checks (#1242)
shadowusr May 22, 2026
b7cb47a
fix!: use gridUrl: "local" by default
KuznetsovRoman May 25, 2026
2f8f10f
feat: make CLI and NEW_BROWSER events async
KuznetsovRoman Jun 4, 2026
0ec40df
fix!: set default resetCursor value to false
KuznetsovRoman May 29, 2026
7344202
fix!: remove global helpers (it,describe,...)
KuznetsovRoman May 22, 2026
cba3d88
chore!: purge devtools
KuznetsovRoman May 27, 2026
b96f12a
feat!: add async function config support
KuznetsovRoman Jun 3, 2026
345a527
fix: calibrate errors (port)
KuznetsovRoman Jun 15, 2026
24cf1fe
fix: fix remaining issues in new assertView algorithm and implement c…
shadowusr Jun 15, 2026
311a153
chore: update package-lock
shadowusr Jun 16, 2026
a4edece
test: fix unit tests
shadowusr Jun 16, 2026
0e79a9e
feat!: useWsDriver is turned on by default
shadowusr Jun 16, 2026
76e63fe
chore!: bump required node version to 22
shadowusr Jun 16, 2026
a982bf8
ci: actualizd github workflows
shadowusr Jun 16, 2026
4c8a2e5
chore: revert rc version bump
shadowusr Jun 16, 2026
49caaf2
fix: perform waitForStaticToLoad call at the correct stage during ass…
shadowusr Jun 16, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
4 changes: 4 additions & 0 deletions .eslintignore
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,8 @@ bundle.compat.js
bundle.native.js
wt
test/e2e/report
test/e2e/static/basic-report
tmp
coverage/**
tsc-out
test/browser-env/report/**
53 changes: 53 additions & 0 deletions .eslintrc.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,59 @@ module.exports = {
ecmaVersion: 2022,
},
overrides: [
{
files: ["src/browser/isomorphic/*.ts"],
rules: {
"@typescript-eslint/no-restricted-imports": [
"error",
{
patterns: ["../**"],
},
],
},
},
{
files: ["src/**/*.ts"],
excludedFiles: ["src/browser/client-scripts/**"],
rules: {
"@typescript-eslint/no-restricted-imports": [
"error",
{
patterns: [
{
group: ["**/client-scripts/**"],
allowTypeImports: true,
message:
"Imports from client-scripts are forbidden. Use type-only imports when needed.",
},
],
},
],
},
},
{
files: ["src/browser/client-scripts/**/*.ts"],
rules: {
"@typescript-eslint/no-restricted-imports": [
"error",
{
patterns: [
{
group: [
"../../**",
"!../../isomorphic",
"!../../isomorphic/**",
"!../../..",
"!../../../isomorphic",
"!../../../isomorphic/**",
],
message: "Client-scripts cannot import server-side code, except isomorphic modules.",
},
],
},
],
},
},
{
files: ["*.ts"],
rules: {
Expand Down
98 changes: 98 additions & 0 deletions .github/workflows/browser-env.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,98 @@
name: Testplane Browser Env Tests

on:
pull_request:
branches: [master]

concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true

jobs:
testplane-browser-env:
runs-on: ubuntu-latest

permissions:
contents: write
pull-requests: write

env:
DOCKER_IMAGE_NAME: html-reporter-browsers

steps:
- uses: actions/checkout@v4

- name: Use Node.js 20
uses: actions/setup-node@v4
with:
node-version: 20
cache: "npm"

- name: Install dependencies
run: npm ci

- name: Build the package
run: npm run build

- name: "Prepare browser-env tests: Cache browser docker image"
uses: actions/cache@v3
with:
path: ~/.docker/cache
key: docker-browser-image-testplane

- name: "Prepare browser-env tests: Pull browser docker image"
run: |
mkdir -p ~/.docker/cache
if [ -f ~/.docker/cache/image.tar ]; then
docker load -i ~/.docker/cache/image.tar
else
docker pull yinfra/html-reporter-browsers
docker save yinfra/html-reporter-browsers -o ~/.docker/cache/image.tar
fi

- name: "Prepare browser-env tests: Run browser docker image"
run: docker run -d --name ${{ env.DOCKER_IMAGE_NAME }} -it --rm --network=host $(which colima >/dev/null || echo --add-host=host.docker.internal:0.0.0.0) yinfra/html-reporter-browsers

- name: "browser-env: Run Testplane"
id: "testplane"
continue-on-error: true
run: npm run test-browser-env

- name: "browser-env: Stop browser docker image"
run: |
docker kill ${{ env.DOCKER_IMAGE_NAME }} || true
docker rm ${{ env.DOCKER_IMAGE_NAME }} || true

- name: Deploy Testplane html-reporter reports
uses: jakejarvis/s3-sync-action@v0.5.1
with:
args: --acl public-read --follow-symlinks
env:
AWS_S3_BUCKET: gh-testplane-ci
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
AWS_S3_ENDPOINT: https://s3.yandexcloud.net/
SOURCE_DIR: "test/browser-env/report"
DEST_DIR: "testplane-ci/browser-env-reports/${{ github.run_id }}-${{ github.run_number }}-${{ github.run_attempt }}/"

- name: Construct PR comment
run: |
link="https://storage.yandexcloud.net/gh-testplane-ci/testplane-ci/browser-env-reports/${{ github.run_id }}-${{ github.run_number }}-${{ github.run_attempt }}/index.html"
if [ "${{ steps.testplane.outcome }}" != "success" ]; then
comment="### ❌ Testplane browser-env run failed<br><br>[Report](${link})"
echo "PR_COMMENT=${comment}" >> $GITHUB_ENV
else
comment="### ✅ Testplane browser-env run succeed<br><br>[Report](${link})"
echo "PR_COMMENT=${comment}" >> $GITHUB_ENV
fi

- name: Leave comment to PR with link to Testplane HTML reports
if: github.event.pull_request
uses: thollander/actions-comment-pull-request@v3
with:
message: ${{ env.PR_COMMENT }}
comment-tag: testplane_browser_env_results

- name: Fail the job if any Testplane job is failed
if: ${{ steps.testplane.outcome != 'success' }}
run: exit 1
104 changes: 104 additions & 0 deletions .github/workflows/e2e.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
name: Testplane E2E

on:
pull_request:
branches: [master]

concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true

jobs:
testplane-e2e:
runs-on: ubuntu-latest

permissions:
contents: write
pull-requests: write

env:
DOCKER_IMAGE_NAME: html-reporter-browsers

steps:
- uses: actions/checkout@v4

- name: Use Node.js 20
uses: actions/setup-node@v4
with:
node-version: 20
cache: "npm"

- name: Install dependencies
run: npm ci

- name: Build the package
run: npm run build

- name: "Prepare e2e tests: Cache browser docker image"
uses: actions/cache@v3
with:
path: ~/.docker/cache
key: docker-browser-image-testplane

- name: "Prepare e2e tests: Pull browser docker image"
run: |
mkdir -p ~/.docker/cache
if [ -f ~/.docker/cache/image.tar ]; then
docker load -i ~/.docker/cache/image.tar
else
docker pull yinfra/html-reporter-browsers
docker save yinfra/html-reporter-browsers -o ~/.docker/cache/image.tar
fi

- name: "Prepare e2e tests: Run browser docker image"
run: docker run -d --name ${{ env.DOCKER_IMAGE_NAME }} -it --rm --network=host $(which colima >/dev/null || echo --add-host=host.docker.internal:0.0.0.0) yinfra/html-reporter-browsers

# - name: 'Prepare e2e tests: Setup env'
# run: |
# REPORT_PREFIX=testplane-reports
# REPORT_DATE=$(date '+%Y-%m-%d')
# echo "DEST_REPORTS_DIR=$REPORT_PREFIX/$REPORT_DATE/${{ github.run_id }}/${{ github.run_attempt }}" >> $GITHUB_ENV

- name: "e2e: Run Testplane"
id: "testplane"
continue-on-error: true
run: npm run test-e2e

- name: "e2e: Stop browser docker image"
run: |
docker kill ${{ env.DOCKER_IMAGE_NAME }} || true
docker rm ${{ env.DOCKER_IMAGE_NAME }} || true

- name: Deploy Testplane html-reporter reports
uses: jakejarvis/s3-sync-action@v0.5.1
with:
args: --acl public-read --follow-symlinks
env:
AWS_S3_BUCKET: gh-testplane-ci
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
AWS_S3_ENDPOINT: https://s3.yandexcloud.net/
SOURCE_DIR: "test/e2e/report"
DEST_DIR: "testplane-ci/e2e-reports/${{ github.run_id }}-${{ github.run_number }}-${{ github.run_attempt }}/"

- name: Construct PR comment
run: |
link="https://storage.yandexcloud.net/gh-testplane-ci/testplane-ci/e2e-reports/${{ github.run_id }}-${{ github.run_number }}-${{ github.run_attempt }}/index.html"
if [ "${{ steps.testplane.outcome }}" != "success" ]; then
comment="### ❌ Testplane E2E run failed<br><br>[Report](${link})"
echo "PR_COMMENT=${comment}" >> $GITHUB_ENV
else
comment="### ✅ Testplane E2E run succeed<br><br>[Report](${link})"
echo "PR_COMMENT=${comment}" >> $GITHUB_ENV
fi

- name: Leave comment to PR with link to Testplane HTML reports
if: github.event.pull_request
uses: thollander/actions-comment-pull-request@v3
with:
message: ${{ env.PR_COMMENT }}
comment-tag: testplane_results

- name: Fail the job if any Testplane job is failed
if: ${{ steps.testplane.outcome != 'success' }}
run: exit 1
9 changes: 3 additions & 6 deletions .github/workflows/node.js.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ jobs:

strategy:
matrix:
node-version: [18.x, 20.18.1, 22.x, 24.x]
node-version: [22.x, 24.x]
# See supported Node.js release schedule at https://nodejs.org/en/about/releases/

steps:
Expand All @@ -26,12 +26,9 @@ jobs:
node-version: ${{ matrix.node-version }}
cache: "npm"
- run: npm ci
- run: npm run build
- run: npm test

- name: Build
if: ${{ startsWith(matrix.node-version, '20') }}
run: npm run build

- name: Publish
if: ${{ startsWith(matrix.node-version, '20') }}
if: ${{ startsWith(matrix.node-version, '24') }}
run: npx pkg-pr-new publish
2 changes: 1 addition & 1 deletion .github/workflows/repl-e2e.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [20.18.1, 24.x]
node-version: [24.x]

steps:
- uses: actions/checkout@v4
Expand Down
33 changes: 32 additions & 1 deletion .github/workflows/standalone-e2e.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,12 @@ on:
jobs:
integration-test:
runs-on: ubuntu-latest
env:
DOCKER_IMAGE_NAME: html-reporter-browsers

strategy:
matrix:
node-version: [20.18.1]
node-version: [24.x]
browser: [chrome, firefox]

steps:
Expand All @@ -36,7 +39,35 @@ jobs:
- name: Build project
run: npm run build

- name: "Prepare screenshot tests: Cache browser docker image"
if: ${{ matrix.browser == 'chrome' }}
uses: actions/cache@v3
with:
path: ~/.docker/cache
key: docker-browser-image-testplane

- name: "Prepare screenshot tests: Pull browser docker image"
if: ${{ matrix.browser == 'chrome' }}
run: |
mkdir -p ~/.docker/cache
if [ -f ~/.docker/cache/image.tar ]; then
docker load -i ~/.docker/cache/image.tar
else
docker pull yinfra/html-reporter-browsers
docker save yinfra/html-reporter-browsers -o ~/.docker/cache/image.tar
fi

- name: "Prepare screenshot tests: Run browser docker image"
if: ${{ matrix.browser == 'chrome' }}
run: docker run -d --name ${{ env.DOCKER_IMAGE_NAME }} -it --rm --network=host $(which colima >/dev/null || echo --add-host=host.docker.internal:0.0.0.0) yinfra/html-reporter-browsers

- name: Run integration tests for ${{ matrix.browser }}
env:
BROWSER: ${{ matrix.browser }}
run: npm run test-integration

- name: "Screenshot tests: Stop browser docker image"
if: ${{ always() && matrix.browser == 'chrome' }}
run: |
docker kill ${{ env.DOCKER_IMAGE_NAME }} || true
docker rm ${{ env.DOCKER_IMAGE_NAME }} || true
7 changes: 7 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ build
*.tgz
.fuse*
.project
.testplane
node_modules
artifacts
npm-debug.log
Expand All @@ -21,3 +22,9 @@ bundle.native.js
wt/**
tmp/**
test/e2e/**/fixture-project/.testplane/
coverage/**
tsc-out
testplane/**
testplane-report/**
*.tsbuildinfo
test/browser-env/report/**
3 changes: 2 additions & 1 deletion .mocharc.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,6 @@
module.exports = {
recursive: true,
extension: [".js", ".ts"],
require: ["./test/setup", "./test/assert-ext", "./test/ts-node"],
ignore: ["./test/browser-env/**", "**/report/**", "**/basic-report/**"],
require: ["./test/setup", "./test/assert-ext", "./test/ts-node", "tsconfig-paths/register"],
};
9 changes: 9 additions & 0 deletions .prettierignore
Original file line number Diff line number Diff line change
Expand Up @@ -11,4 +11,13 @@ bundle.native.js
wt/**
test/e2e/report
test/e2e/**/fixture-project/.testplane/
test/e2e/static/basic-report
tmp/**
.testplane/**
coverage/**
*.tsbuildinfo
test/browser-env/report/**
*.png
*.DS_Store
.claude
tsc-out
Loading
Loading