Commit Graph

548 Commits

Author SHA1 Message Date
Andrey Lushnikov
0be1fc8559
chore: cut version 1.29 (#19489) 2022-12-15 11:22:35 -08:00
dependabot[bot]
9b29bd232f
chore(deps): bump qs and formidable (#19304) 2022-12-08 10:09:03 +01:00
Dmitry Gozman
81c8620bfe
chore: upgrade internal types to support TypeScript 4.9.3 (#19280)
Fixes https://github.com/microsoft/TypeScript/issues/51619

Co-authored-by: Max Schmitt <max@schmitt.mx>
2022-12-05 17:22:25 -08:00
Andrey Lushnikov
6d82460a02
feat: implement a new image comparison function (#19166)
This patch implements a new image comparison function, codenamed
"ssim-cie94". The goal of the new comparison function is to cancel out
browser non-determenistic rendering.

To use the new comparison function:

```ts
await expect(page).toHaveScreenshot({
  comparator: 'ssim-cie94',
});
```

As of Nov 30, 2022, we identified the following sources of
non-determenistic rendering for Chromium:
- Anti-aliasing for certain shapes might be different due to the
  way skia rasterizes certain shapes.
- Color blending might be different on `x86` and `aarch64`
architectures.

The new function employs a few heuristics to fight these
differences.

Consider two non-equal image pixels `(r1, g1, b1)` and `(r2, g2, b2)`:
1. If the [CIE94] metric is less then 1.0, then we consider these pixels
   **EQUAL**. (The value `1.0` is the [just-noticeable difference] for
   [CIE94].). Otherwise, proceed to next step.
1. If all the 8 neighbors of the first pixel match its color, or
   if the 8 neighbors of the second pixel match its color, then these
   pixels are **DIFFERENT**. (In case of anti-aliasing, some of the
   direct neighbors have to be blended up or down.) Otherwise, proceed
   to next step.
1. If SSIM in some locality around the different pixels is more than
   0.99, then consider this pixels to be **EQUAL**. Otherwise, mark them
   as **DIFFERENT**. (Local SSIM for anti-aliased pixels turns out to be
   very close to 1.0).

[CIE94]: https://en.wikipedia.org/wiki/Color_difference#CIE94
[just-noticeable difference]:
https://en.wikipedia.org/wiki/Just-noticeable_difference
2022-12-02 15:22:05 -08:00
Max Schmitt
f8355b940e
chore: bump Babel dependencies (#19026) 2022-11-23 09:37:31 -10:00
winches
d09184c34c
chore: add eslint cache (#18876) 2022-11-22 08:46:11 -08:00
Andrey Lushnikov
bc78db07df
chore: cut 1.28 branch (#18746) 2022-11-11 15:30:15 -08:00
Andrey Lushnikov
db826c9c8c
chore: drive-by fixes for the snapshotPathTemplate (#18715)
- Use `snapshotPathTemplate` for docker screenshots in html-reporter
- Mark the snapshot path template test as slow since it re-spawns
  worker for each project.
- Fix docker smoke tests
2022-11-10 15:50:13 -08:00
Pavel Feldman
2183d9e9a2
chore: use codemirror for editor (#18482) 2022-11-01 15:04:30 -07:00
sand4rt
fabe42dc28
chore(ct): bump vite to v3.2.1 (#18427) 2022-10-31 08:58:11 -07:00
sand4rt
098de5009e
chore: bump vite to 3.1.8 (#18095) 2022-10-18 13:09:32 -07:00
Dmitry Gozman
a23ee6f14d
test: fix "getByText should work" with tracing enabled, docker smoke tests (#17864) 2022-10-05 21:31:25 -07:00
Dmitry Gozman
ed6ecbca2a
chore: cut v1.27.0 (#17859) 2022-10-05 15:30:35 -07:00
Pavel Feldman
cadd4d1dd0
chore: migrate http server to ts (#17677) 2022-09-28 17:01:13 -07:00
Andrey Lushnikov
0abb1c773b
devops: fix npm run dtest (#17516)
The `npx playwright docker test` command does not exist any more.
2022-09-21 12:45:25 -07:00
Andrey Lushnikov
a12112c24d
devops(docker): add docker integration smoke tests (#17267) 2022-09-14 15:05:18 -07:00
Andrey Lushnikov
bc942ef9ea
chore: cut v1.26.0 (#17265) 2022-09-12 10:45:27 -07:00
Andrey Lushnikov
3708ba7a1f
chore: drop adm-zip from dev dependencies (#17198)
This was used in the `repack-juggler`.
2022-09-08 09:04:01 -07:00
Max Schmitt
904801a5eb
test: add initial webview2 tests (#16827) 2022-09-07 20:09:22 +02:00
Max Schmitt
85698f51c7
chore: add missing esbuild to package.json (#17064) 2022-09-05 16:33:05 +02:00
Pavel Feldman
535f3d1564
chore: bump lock deps (#16953) 2022-08-31 18:30:26 -07:00
Robert Niznik
664d4a271e
chore(ct-react): bump vite to v3 and @vitejs/plugin-react to v2 (#15733) 2022-08-21 13:52:02 +02:00
Max Schmitt
2e242e2dff
chore: roll Electron to 19.0.11 (#16024) 2022-08-10 10:41:55 +02:00
Andrey Lushnikov
0c7f086096
chore: cut v1.25 branch (#16390) 2022-08-09 17:09:58 -07:00
Pavel Feldman
5a79054544
feat(innerloop): allow reusing browsers over the remote connection (#16065) 2022-07-31 14:31:17 -07:00
Max Schmitt
6482ff7a7f
chore: roll Electron to 16.2.8 (#16017) 2022-07-28 15:41:32 +02:00
Pavel Feldman
55cd3928b7
chore: reuse context in the innerloop mode (#15719) 2022-07-15 10:36:36 -07:00
Andrey Lushnikov
df9beb4045
chore: cut v1.24 (#15654) 2022-07-14 09:42:40 -07:00
Andrey Lushnikov
35720e2fcd
devops: adapt repack-juggler script to work with win (#15254)
This patch:
- Uses some folder in `CWD` instead of `/tmp` on win32 to store
  builds
- Drops usage of `find`, `zip` and `unzip` posix tools. Instead, rely
  on `adm-zip` package.
2022-06-30 11:04:59 -07:00
Max Schmitt
3a61938628
chore: mark 1.24-next (#14857) 2022-06-21 19:32:15 +02:00
Pavel Feldman
4cc25725f9
fix(types): follow up to react 18 changes (#14671) 2022-06-06 21:05:47 -07:00
Pavel Feldman
e3a590ed80
chore: update to react18, but use react17 mode (#14645) 2022-06-06 17:14:01 -07:00
Pavel Feldman
61c38f3b92
chore: update to TS 4.7.2 (#14519) 2022-05-31 13:11:39 -07:00
Max Schmitt
e02e5e66f0
chore: bump TypeScript to 4.6 (#14358) 2022-05-23 22:59:33 +03:00
Pavel Feldman
f0b077ea82
test(stress): add stress tests (#14240) 2022-05-18 09:50:58 -07:00
Andrey Lushnikov
f7adbd83ee
chore: cut v1.22.0 (#14098) 2022-05-12 11:12:01 -07:00
Max Schmitt
37bee74ae5
chore: set minimum version to Node.js 14 (#13469) 2022-04-26 17:52:32 +02:00
Ross Wollman
e69e836c40
chore: port installation tests to @playwright/test (#13644) 2022-04-25 09:30:14 -07:00
Pavel Feldman
007e908cd9
chore: bundle pwt deps (#13622) 2022-04-18 21:47:18 -07:00
Pavel Feldman
7989427ea6
chore: bundle core deps (#13621) 2022-04-18 20:20:49 -07:00
Pavel Feldman
63ea81ec54
chore: make bundles typed (#13620) 2022-04-18 17:50:25 -07:00
Pavel Feldman
58d79e5e4d
chore: add core utils bundle (#13615) 2022-04-18 13:47:23 -07:00
Pavel Feldman
4f0103fef0
chore: babel, expect, zip bundles (#13588) 2022-04-18 11:31:58 -07:00
Pavel Feldman
5f843c347d
chore: bundle pixelmatch, it has not changed for 2 years (#13585) 2022-04-15 16:58:31 -07:00
Andrey Lushnikov
91333daf09
chore: cut v1.21.0 (#13405) 2022-04-07 18:16:22 -07:00
Pavel Feldman
bd6e88b8be
test: start adding component tests (#13159) 2022-03-29 13:27:37 -07:00
Pavel Feldman
1961959dcb
chore: migrate injected scripts to esbuild (#13143) 2022-03-28 23:10:17 -07:00
Pavel Feldman
a58707b8a6
chore: group tests under tests/ (2) (#13082) 2022-03-25 23:09:02 -07:00
Pavel Feldman
6b81e76c2b
chore: migrate trace-viewer and recorder to vite (#13076) 2022-03-25 14:12:00 -07:00
Pavel Feldman
e9fa098bf3
chore: add ct examples (#12693) 2022-03-11 15:46:11 -08:00