4245 Commits

Author SHA1 Message Date
Yury Semikhatsky
6ad48fb594
chore: make step test expectations readable (#30362)
Reference https://github.com/microsoft/playwright/issues/30322
2024-04-13 20:07:18 -07:00
Yury Semikhatsky
c4418875d3
chore: do skip failing test (#30361) 2024-04-12 15:47:13 -07:00
Yury Semikhatsky
dc1077c5a2
test: steps inside expect.toPass (#30359)
Reference https://github.com/microsoft/playwright/issues/30322
2024-04-12 14:51:10 -07:00
Max Schmitt
a467312731
fix(snapshotter): remove noscript when javaScriptEnabled is undefined (#30355) 2024-04-12 20:26:52 +02:00
Yury Semikhatsky
1ef85015f3
fix(merge): preserve static annotations on the tests that did not run (#30348)
Fixes https://github.com/microsoft/playwright/issues/30260
2024-04-11 16:17:57 -07:00
Max Schmitt
96053ed0b5
Revert "fix(reuse): reset Origin Private File System API (#29921)" (#30342)
This reverts commit 048d6669fd4b1309cca2f5baf4ed873295eccb77.

This change caused the crash for
https://github.com/microsoft/playwright/issues/30339#issuecomment-2049870789.
If we don't execute this code, it does not crash.

Reverting it for now until the Chromium fix lands in Beta/Stable.
2024-04-11 19:07:15 +02:00
Max Schmitt
bff9f30b6f
test: add test for 'should parse cookie with large Max-Age correctly' (#30323) 2024-04-10 22:13:01 +02:00
Max Schmitt
15b423106f
fix(ui-mode): do not loose run information after writing into testDir (#30312)
Partially reverts https://github.com/microsoft/playwright/pull/30008
that started to reset all test results upon listing tests, including the
test that did just run and triggered re-listing.

https://github.com/microsoft/playwright/issues/30300.
2024-04-10 19:01:51 +02:00
Max Schmitt
b2ded9fed1
fix(expect): throw better received error when no element was found (#29890)
Fixes https://github.com/microsoft/playwright/issues/29873
2024-04-10 10:01:19 +02:00
Sander
1a34c85886
chore(ct): bump vite to v5.2.8 (#30264) 2024-04-08 09:48:05 +02:00
Dmitry Gozman
a6827772a5
fix(esmLoader): unref MessagePort in the main thread (#30271)
This prevents the process from not exiting forever due to an open port.
2024-04-06 14:25:57 -07:00
Dmitry Gozman
e18a358bc6
test: check that ESM loader works without config with type:module (#30258) 2024-04-05 07:03:27 -07:00
Dmitry Gozman
5d810f1e07
chore: roll stable test runner to 1.43.0-beta-1712217576000 (#30250)
Co-authored-by: Yury Semikhatsky <yurys@chromium.org>
2024-04-04 11:26:03 -07:00
Dmitry Gozman
d5907f4b13
feat(junit): includeProjectInTestName option (#30233)
Fixes #30246.
2024-04-04 11:04:51 -07:00
Max Schmitt
18b51308ff
test(svelte): migrate svelte-navigator to custom minimal router (#30225)
Repro: `cd tests/components/ct-svelte && rm -rf node_modules
package-lock.json && npm i && npx playwright test --project=chromium`

Follow-up based on
https://github.com/microsoft/playwright/pull/28624#issuecomment-1858608101.

Svelte has no router by default, only SvelteKit - so lets remove the
package which is not maintained anymore and not recommended.
2024-04-04 16:01:08 +02:00
Max Schmitt
43745210a5
fix(trace-viewer): exit if given trace.zip does not exist (#30222) 2024-04-03 18:47:03 +02:00
Козынченко Вячеслав
e58a33a0ae
feat(expect) - add ignoreCase option for toHaveURL (#30192)
feat(expect): add ignoreCase option for toHaveURL

Fixes #30057
2024-04-02 16:20:46 -07:00
Yury Semikhatsky
81bcf2a53b
docs: document FullReporter API (#30186)
* FullConfig split into FullConfig and ConfigInWorker
* FullProject split into FullProject and ProjectInWorker
* Tests can only access {Config, Project}InWorker, while reporters can
only access Full{Config,Project}. This will allow in the future to
change the reporter API independently from the tests.
* Added documentation for the 4 classes.
2024-04-02 16:15:02 -07:00
Dmitry Gozman
6d56b453ff
fix(connect): include websocket close reason in the error message (#30203)
When websocket disconnects during `browserType.connect()` call, the
error looks like this now:

```
browserType.connect: Custom error message received over WebSocket
```

Previously, it was a generic error:
```
browserType.connect: Target page, context or browser has been closed
```
2024-04-01 21:05:33 -07:00
Peng Xiao
cc881fdb1f
fix: content editable retarget (#29792)
If `contenteditable` is wrapped into a button or `[role=button]`,
`element.fill` will incorrectly retarget the closest button element.

fix https://github.com/microsoft/playwright/issues/29813
2024-04-01 13:03:09 -07:00
Hansanto
a950a7b86b
feat: Support intervals arg for toPass (#30037)
Fixes #30040

# Context

In the `playwright.config` file, we can custom the default `timeout`
property for `expect.toPass` by the property:

```ts title='playwright.config.ts'
export default defineConfig({
  // ...
  expect: {
    toPass: {
      timeout: 60_000,
    },
  },
});
```

However, we can't customize the `intervals` option. So the default value
is always `[100, 250, 500, 1000]`.

# Goal

Add the possibility to customize the intervals option from the
`playwright.config` file.

```ts title='playwright.config.ts'
export default defineConfig({
  // ...
  expect: {
    toPass: {
      timeout: 60_000,
      intervals: [1000, 2000, 3000]
    },
  },
});
```
2024-03-29 10:17:29 -07:00
Yury Semikhatsky
3001c9ac73
fix: preserve test declaration order in html and merged report (#30159)
* Add `Suite.entries` that returns tests and suites in their declaration
order
* Exposed `Suite.type` and `TestCase.type` for discriminating between
different entry types.
* Blob report format is updated to store entries instead of separate
lists for suites and tests.
* Bumped blob format version to 2, added modernizer.

Fixes https://github.com/microsoft/playwright/issues/29984
2024-03-29 10:12:33 -07:00
Yury Semikhatsky
16318ea715
chore: remove unused botName from types (#30172) 2024-03-28 16:16:15 -07:00
Andrey Lushnikov
4781b3c3a8
fix(firefox): disable cache when request interception is enabled (#30113)
Fixes #30000
2024-03-28 10:25:37 -07:00
Yury Semikhatsky
021c5c108c
chore: revert support of duplicate form data fields in multipart post data (#30127)
We want to adopt FormData API for the requests.

This is a revert of 4b3c596874156ac4c75c270466ab2c08e3d7132c and
a849ea97411714d50cda0a0d5c156decbdc2d814

Reference https://github.com/microsoft/playwright/issues/28070
2024-03-26 12:36:35 -07:00
Dmitry Gozman
dd1eca2a9d
fix(trace viewer): show correct number of pages without screencast (#30124)
Exposed by the flaky "should open two trace files" test.
2024-03-26 10:25:12 -07:00
Pavel Feldman
2de8a6b002
chore: move filter params into the clearCookies (#30111) 2024-03-26 08:12:26 -07:00
Andrey Lushnikov
397244c026
test: add a test for disabled cache with context-wide request interception (#30072)
References #30000
2024-03-25 22:03:24 -07:00
Max Schmitt
599185dd07
feat(ui-mode): show native tags in test tree (#30092)
This brings up the question that we would show the tag name twice if its
a tag in a title. This would be aligned to how HTML report is doing it.

Fixes https://github.com/microsoft/playwright/issues/29927

---------

Signed-off-by: Max Schmitt <max@schmitt.mx>
Co-authored-by: Dmitry Gozman <dgozman@gmail.com>
2024-03-26 01:06:22 +01:00
Dmitry Gozman
051afb9ce0
fix(test runner): update fixture teardown error message (#30109)
With the recent change that gave after hooks a separate timeout, fixture
teardown does not imply that "test finished successfully, but fixture
teardown was slow".
2024-03-25 17:04:03 -07:00
Max Schmitt
65d82797f1
fix(ct): ct ID clash on similar imports (#30108)
This restores the [best
effort](https://github.com/microsoft/playwright/pull/29407/files#diff-8dd3534dc5013c3779edeaded71324b0dd1c1807668f3c6d9e9a1aab1c20ae91L152)
logic if its a relativ path.

Fixes https://github.com/microsoft/playwright/issues/30085

---------

Signed-off-by: Max Schmitt <max@schmitt.mx>
Co-authored-by: Pavel Feldman <pavel.feldman@gmail.com>
2024-03-25 23:50:45 +01:00
Yury Semikhatsky
a849ea9741
feat(fetch): multiple fields with the same name in post data (#30104)
Rerefence https://github.com/microsoft/playwright/issues/28070
2024-03-25 15:39:45 -07:00
Dmitry Gozman
911d8effb9
feat(test runner): do not mock tty in the worker process (#30107)
This was historically done to make `console.log()` have colors. However,
this makes any other code that checks `process.stdout.isTTY` incorrectly
assume real TTY support.

Node18 and Node20 now respect `FORCE_COLOR=1` in console, so our default
behavior of forcing colors in the worker process just works out of the
box. See https://github.com/nodejs/node/pull/48034.
2024-03-25 15:31:58 -07:00
Max Schmitt
253a2f9a9c
chore: address UI Mode keyboard shortcut feedback (#30088)
Signed-off-by: Max Schmitt <max@schmitt.mx>
Co-authored-by: Dmitry Gozman <dgozman@gmail.com>
2024-03-25 19:48:20 +01:00
Max Schmitt
e69355a6e2
test: skip 'should fulfill with gzip and readback' on Electron and Android (#30103) 2024-03-25 19:35:44 +01:00
Dmitry Gozman
95d649b406
feat: address api review feedback for 1.43 (#30066)
- Update docs for `trace: retain-on-first-failure`.
- Update docs for `devtools` option.
- Rename `Locator.enterFrame()` to `Locator.contentFrame()`.
- Rename `FrameLocator.exitFrame()` to `FrameLocator.owner()`.
2024-03-25 07:42:13 -07:00
Dmitry Gozman
7a3c002944
fix(ct): allow importing json files (#30067)
While we are not fully resolving imports during compilation, do not
treat `json` as a non-importable asset.

Fixes #29926.
2024-03-25 07:41:54 -07:00
Pavel Feldman
1539cde034
chore: allow passing path to config to the test server (#30068) 2024-03-22 16:04:59 -07:00
Dmitry Gozman
c8e8d8f8bb
test: fulfilling with gzip should allow to read the body (#30065)
Fixes #29261.
2024-03-22 13:32:28 -07:00
Dmitry Gozman
c1400a3db5
Revert "feat(codegen): add button to generate toHaveScreenshot statement (#29996)" (#30064)
This reverts commit 1bb463163b4efef507a4b8d8feeb48e49e4a756e. Decided to
wait for a better VRT story.

References #29250.
2024-03-22 13:26:22 -07:00
Yury Semikhatsky
a511731f55
fix(html): keep projects from different bots separate (#30051) 2024-03-22 10:02:00 -07:00
Dmitry Gozman
348d0c2bfa
test: can register service workers in an iframe (#30045)
References #29267.
2024-03-21 15:34:23 -07:00
Dmitry Gozman
ef57489cf9
test: iframe is covered by service workers (#30042)
References #29267.
2024-03-21 11:27:27 -07:00
Dmitry Gozman
3e73a6ce69
feat(test runner): show multiple errors, at most one per stage (#30024)
Previously, there was at most one "hard error", as opposite to multiple
"soft errors". This was done to preserve the historic behavior at the
time of introducing multiple `TestInfo.errors`.

With this change, every user callback that is executed `withRunnable()`
can throw an error and/or timeout, and both of these will end up in
`TestInfo.errors`.

Additionally, there is at most one "unhandled exception" error, to avoid
flooding the report with mass failures.

Drive-by: remove boolean arguments from `_failWithError()`.

Fixes #29876.
2024-03-20 21:01:30 -07:00
Yury Semikhatsky
69e90f38c7
fix(codegen): import re in python (#30026)
Fixes https://github.com/microsoft/playwright/issues/30019
2024-03-20 16:38:28 -07:00
Yury Semikhatsky
69f2ae1e4d
test: intercepted requests bypass disk cache (#30011)
Reference https://github.com/microsoft/playwright/issues/30000
2024-03-20 15:43:29 -07:00
Max Schmitt
dd0b6f7ec5
test: generate debug controller channel (#30018) 2024-03-20 16:56:29 +01:00
Max Schmitt
911fd204cf
devops: fix WebView2 tests (#30009)
Turns out we were using version 119.0.2151.58 before where the tests are
failing. After this change we are using 122.0.2365.92.

Fixes https://github.com/microsoft/playwright/issues/29695
Relates https://github.com/actions/runner-images/issues/9538
2024-03-19 23:18:20 +01:00
Pavel Feldman
0a22a86e2e
chore: prepare to reuse test server from ui mode (5) (#30005) 2024-03-19 14:08:21 -07:00
Dmitry Gozman
1bb463163b
feat(codegen): add button to generate toHaveScreenshot statement (#29996)
Fixes #29250.
2024-03-19 14:01:04 -07:00