Commit graph

4256 commits

Author SHA1 Message Date
Yury Semikhatsky ae9345d0bd
docs: add FormData to the examples (#30557) 2024-04-25 16:31:27 -07:00
Dmitry Gozman 6d20da568e
feat: expect(locator).toHaveRole(role) (#30555)
References #13517. Fixes #18332.
2024-04-25 15:26:10 -07:00
Yury Semikhatsky 9a1b34a4b0
Revert "fix: shut down workers before reporter.onEnd (#30329)" (#30551)
This reverts commit 3cea17abb6.

Reference https://github.com/microsoft/playwright/issues/30550

The test is preserved but marked as fixme.
2024-04-25 14:21:54 -07:00
Dmitry Gozman 086ea79c25
chore: remove checkCoverage script (#30552)
We do not benefit from it for many years already.
2024-04-25 14:00:14 -07:00
Dmitry Gozman 9bd2aea130
feat(locator handler): address api review feedback (#30554)
- Remove `handler` argument from `removeLocatorHandler`.
- Rename `allowStayingVisible` into `noWaitAfter`.
- Improve logging related to locator handler.
- Remove experimental badges.
2024-04-25 14:00:02 -07:00
Dmitry Gozman dc0665210f
fix(reporters): properly determine flaky status for serial mode (#30529)
There are plenty of edge cases in this area:
- interrupted test run;
- did not run because of serial mode failure;
- failed before `test.skip()` call (e.g. in `beforeEach`) in one of the
retries;
- and more...

Related issues: #28322, #28321, #27455, #17652.
Prior changes: #27762, #26385, #28360, probably more.

There is still some duplication between `outcome()` and similar logic in
`base.ts`, which might be deduped in a follow-up.

Fixes #28322.
2024-04-25 13:39:14 -07:00
Yury Semikhatsky 5502a16e1d
fix(junit): merged report should preserve total duration (#30525)
Fixes https://github.com/microsoft/playwright/issues/30518
2024-04-25 13:34:17 -07:00
Yury Semikhatsky 714235d6c8
fix(merge): include command hash into the report name (#30528)
Reference https://github.com/microsoft/playwright/issues/30091
2024-04-25 13:34:00 -07:00
Pavel Feldman 4fa1030af6
chore: hide skipped tests by default (#30546)
Fixes https://github.com/microsoft/playwright/issues/30540
2024-04-25 12:48:41 -07:00
Pavel Feldman 14413148f4
chore: document --last-failed (#30544)
drive-by: undocument --browser
2024-04-25 12:29:51 -07:00
Playwright Service dfda3003a1
feat(webkit): roll to r2003 (#30543)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2024-04-25 19:38:21 +02:00
Yury Semikhatsky b074932a44
feat(blob): PLAYWRIGHT_BLOB_FILE_NAME env variable (#30530)
Reference https://github.com/microsoft/playwright/issues/30091
2024-04-25 09:45:38 -07:00
Pavel Feldman a2eb43b335
feat(runner): allow running last failed tests (#30533)
Fixes: https://github.com/microsoft/playwright/issues/30506
2024-04-25 08:15:27 -07:00
Playwright Service 8e6272b1e3
feat(chromium): roll to r1116 (#30542)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2024-04-25 16:08:13 +02:00
Playwright Service 0f28063538
feat(chromium-tip-of-tree): roll to r1215 (#30541)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2024-04-25 15:26:03 +02:00
Pavel Feldman ff3d3ae8f2
fix(ui): print config and global setup errors (#30531)
Fixes: https://github.com/microsoft/playwright/issues/30513
2024-04-24 18:54:48 -07:00
Dmitry Gozman 59689c9c97
feat(addLocatorHandler): various improvements (#30494)
- Automatically waiting for the overlay locator to be hidden, with
`allowStayingVisible` opt-out.
- `times: 1` option.
- `removeLocatorHandler(locator, handler)` method.
- Passing `locator` as first argument to `handler`.

Fixes #30471. Fixes #30424. Fixes #29779.
2024-04-24 15:19:12 -07:00
Yury Semikhatsky e2f7acea1e
docs: fix capitalization and alphabetic order in TestConfig (#30523) 2024-04-24 15:18:43 -07:00
Yury Semikhatsky f1f3929a67
chore: get rid of ConfigInWorker, use FullConfig instead (#30517)
Addressing API review feedback.
2024-04-24 14:14:05 -07:00
Yury Semikhatsky 4e086e6df8
docs: update type property description (#30516) 2024-04-24 13:10:17 -07:00
Playwright Service 9914b35c96
feat(firefox-beta): roll to r1449 (#30510)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2024-04-24 12:43:26 -07:00
Pavel Feldman e91d372544
fix(ct): allow importing components from node_modules (#30493)
Fixes https://github.com/microsoft/playwright/issues/29854
2024-04-24 12:32:28 -07:00
Pavel Feldman 7a9fd27146
chore: never watch node_modules (#30514) 2024-04-24 12:27:47 -07:00
Dmitry Gozman 8fc7723f22
fix(types): allow any return type from event handlers (#30492)
Closes #29353.
2024-04-24 09:25:43 -07:00
Playwright Service b1d963c24c
feat(webkit): roll to r2002 (#30505)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2024-04-24 17:06:52 +02:00
Yury Semikhatsky 230a8437d3
feat(fetch): support FormData as multipart parameter (#30489)
Reference https://github.com/microsoft/playwright/issues/28070
2024-04-23 17:05:27 -07:00
Dmitry Gozman 25b881cd10
fix(firefox): "warn" console messages should be "warning" (#30490)
Fixes #30136.
2024-04-23 15:07:29 -07:00
Pavel Feldman 4514b7e3ed
chore: use original test ids in html report (#30486)
Fixes https://github.com/microsoft/playwright/issues/30430
2024-04-23 14:28:27 -07:00
Yury Semikhatsky 67c430435a
docs: more accurate test id description (#30487)
Reference https://github.com/microsoft/playwright/issues/30430
2024-04-23 14:07:37 -07:00
Pavel Feldman f5ca5241f3
feat(esm): support import attributes (#30482)
Fixes https://github.com/microsoft/playwright/issues/30473
2024-04-23 10:13:01 -07:00
Dmitry Gozman 02c0706896
docs: do not recommend waitForLoadState (#30483)
Instead, just perform an action and auto-waiting will handle it.

Closes #30236.
2024-04-23 09:22:58 -07:00
Rui Figueira c80b851422
fix(codegen): prevent csp directive violations (#30366) 2024-04-23 07:33:12 -07:00
Max Schmitt d7169973ae
chore(roll): roll chromium-tip-of-tree to r1214 (#30481) 2024-04-23 15:59:48 +02:00
Dmitry Gozman b0fbe058ae
feat: TestProject.ignoreSnapshots (#30466) 2024-04-22 16:16:38 -07:00
Yury Semikhatsky 1d786c804d
chore: generate globalTimeout and maxFailures errors in runner (#30467)
Generate 'global timeout' and 'max failures' errors in the runner. Avoid
reading `config.globalTimeout` and `config.maxFailures` in the base
reporters.

Reference https://github.com/microsoft/playwright/issues/29768
2024-04-22 14:00:16 -07:00
Yury Semikhatsky 1e52c37b25
chore: remove unused field (#30465) 2024-04-22 13:31:17 -07:00
Dmitry Gozman 4a275b8eca
feat: expect(locator).toHaveAccessibleDescription (#30463)
References #18332.
2024-04-22 12:33:30 -07:00
Yury Semikhatsky 42f91e30d1
chore: remove link to deleted troubleshooting guide (#30462)
Fixes https://github.com/microsoft/playwright/issues/30446
2024-04-22 10:58:48 -07:00
Playwright Service 35a6d91ada
feat(firefox): roll to r1449 (#30432)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2024-04-22 09:29:34 -07:00
Playwright Service dd1a9f5e96
feat(chromium): roll to r1115 (#30449) 2024-04-20 18:42:22 +02:00
Max Schmitt a932222662
fix(highlight): highlight Top Layer elements (#30001) 2024-04-20 08:51:16 +02:00
Playwright Service d332541df7
feat(webkit): roll to r2001 (#30435)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2024-04-20 00:39:01 +02:00
Dmitry Gozman 9b6627a063
feat(role): roll and pass WPT accname tests, calculate description (#30434)
There are new "non-manual" WPT accname tests that we now mostly pass,
which required a few tweeks in calculating role and name.

Also implemented accessible description computation, which is just a
small addition on top of accessible name, and passed respective wpt
tests.

References #18332.
2024-04-19 12:49:49 -07:00
Yury Semikhatsky 8c181f7e2b
fix: rebuild project tree from scratch when listing tests (#30407)
Instead of filtering tests assuming there are no two projects with same
name we always rebuild test tree from scratch and restore previos test
results in the list mode.

Fixes https://github.com/microsoft/playwright/issues/30396
2024-04-18 16:49:07 -07:00
Max Schmitt a1b3332e54
chore: follow-up on Electron launch (#30423)
Follow-up to https://github.com/microsoft/playwright/pull/30382.
2024-04-19 00:34:07 +02:00
Dmitry Gozman eea1f9984f
feat: expect(locator).toHaveAccessibleName (#30420)
References #18332.
2024-04-18 12:28:55 -07:00
Dmitry Gozman 103ec90751
fix(role): align presentation role conflict resolution with the spec (#30408)
See
https://www.w3.org/TR/wai-aria-1.2/#conflict_resolution_presentation_none

Fixes #26809.
2024-04-18 08:53:31 -07:00
Playwright Service a98abbdda9
feat(chromium-tip-of-tree): roll to r1213 (#30415)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2024-04-18 15:29:11 +02:00
Playwright Service a41122daa2
feat(firefox): roll to r1448 (#30411)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2024-04-18 11:16:28 +02:00
Dmitry Gozman 984182bd53
fix(role): embedded control inside the target element (#30403)
According to the spec, such controls should use the native value as long
as they have "aria-label". The relevant spec section is 2D.

However, there is an open issue that claims this should always apply,
and all browsers and wpt test actually do that:
https://github.com/w3c/accname/issues/64.

Fixes #28848.
2024-04-17 12:25:08 -07:00
Dmitry Gozman b72e3a3eba
fix(role): explicitly hidden aria-labelledby should be recursively traversed (#30402)
The accessible name computation spec has changed to explicitly mention
this case:

Step 2A. Hidden Not Referenced. If the current node is hidden and is:
- Not part of an aria-labelledby or aria-describedby traversal, where
the node directly referenced by that relation was hidden.
- Nor part of a native host language text alternative element (e.g.
label in HTML) or attribute traversal, where the root of that traversal
was hidden.

See https://w3c.github.io/accname/#computation-steps. Chromium, Firefox
and Safari all agree with the spec.

Fixes #29796.
2024-04-17 11:22:09 -07:00
Mateusz Burzyński 82aefd24db
types: allow readonly tuples to be used as ReporterDescription (#30387)
This makes it easier to create helper functions like:
```ts
function createReporter(options: MyOptions) {
  return ['my-reporter', options] as const
}
```

At the moment, such functions can't be passed to `reporters` because a
readonly array is not assignable to the expected mutable array.
Playwirght certainly doesn't require those arrays to be mutable so it
would make sense to relax this.
2024-04-16 17:39:11 -07:00
Yury Semikhatsky 3bdbe4284e
fix(steps): make expect.toPass and expect.poll step containers (#30389)
Fixes https://github.com/microsoft/playwright/issues/30322
2024-04-16 16:18:37 -07:00
Yury Semikhatsky 73fce8fb98
chore: replace Zones with AsyncLocalStorage (#30381)
Reference https://github.com/microsoft/playwright/issues/30322
2024-04-16 12:51:20 -07:00
Yury Semikhatsky 3cea17abb6
fix: shut down workers before reporter.onEnd (#30329) 2024-04-16 09:49:11 -07:00
Peng Xiao 58187075c8
fix: running electron tests on windows for node 20.12.2 (#30382) 2024-04-16 17:41:19 +02:00
Playwright Service 78793e05ff
feat(chromium): roll to r1114 (#30385)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2024-04-16 13:55:36 +02:00
Playwright Service e2c1efad9e
feat(chromium-tip-of-tree): roll to r1212 (#30380)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2024-04-16 07:33:17 +02:00
Dmitry Gozman a6a44a07a7
chore: align crServiceWorker with crPage (#30367)
Simplify network-related methods because crNetworkManager already
handles initial/non-initial calls.
2024-04-15 11:09:38 -07:00
Playwright Service 950e2af44c
feat(webkit): roll to r2000 (#30374)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2024-04-15 18:47:31 +02:00
Playwright Service 80e725b5a3
feat(chromium): roll to r1113 (#30364)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2024-04-13 14:04:30 +02:00
Max Schmitt a467312731
fix(snapshotter): remove noscript when javaScriptEnabled is undefined (#30355) 2024-04-12 20:26:52 +02:00
Max Schmitt 56a7adeb8a
test: unflake 'should not include trace resources from the previous chunks' test (#30257) 2024-04-12 19:48:53 +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
Playwright Service 1ab40d8860
feat(webkit): roll to r1999 (#30343)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2024-04-11 19:09:46 +02:00
Max Schmitt 96053ed0b5
Revert "fix(reuse): reset Origin Private File System API (#29921)" (#30342)
This reverts commit 048d6669fd.

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 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
Playwright Service b5e36583f6
feat(webkit): roll to r1998 (#30310)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2024-04-09 16:19:58 +02:00
Playwright Service f9b97fa125
feat(chromium-tip-of-tree): roll to r1210 (#30308)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2024-04-09 15:10:26 +02:00
Playwright Service 62ae71f96a
feat(webkit): roll to r1997 (#30295)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2024-04-08 19:01:49 +02:00
Playwright Service 8deb44cd37
feat(webkit): roll to r1996 (#30291)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2024-04-08 14:16:01 +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
Yury Semikhatsky 3e03c800df
chore: resolve config location earlier (#30275)
Reference https://github.com/microsoft/playwright/issues/29768
2024-04-05 19:32:56 -07:00
Yury Semikhatsky 9e89f292bf
chore: remove usage of configFile from junit reporter (#30273)
Reference https://github.com/microsoft/playwright/issues/29768
2024-04-05 15:44:00 -07:00
Pavel Feldman 3cea258a9c
chore: expose clear cache to test server (#30268) 2024-04-05 09:31:34 -07:00
Pavel Feldman 5043bd55dc
chore: move dev server to config-based framework extensibility (#30234) 2024-04-05 08:39:51 -07:00
Dmitry Gozman d5907f4b13
feat(junit): includeProjectInTestName option (#30233)
Fixes #30246.
2024-04-04 11:04:51 -07:00
Dmitry Gozman 88f2717e87
docs: hint that popup main request is accessible through BrowserContext (#30249)
Fixes #30229.
2024-04-04 09:23:21 -07:00
Playwright Service 345240b9df
feat(chromium-tip-of-tree): roll to r1209 (#30242)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2024-04-04 14:12:57 +02:00
Playwright Service 4d4308e7b3
feat(chromium): roll to r1112 (#30235) 2024-04-04 09:25:57 +02:00
dependabot[bot] 0d5964d3f9
chore(deps): bump vite from 5.0.12 to 5.0.13 (#30227) 2024-04-04 09:25:46 +02:00
Pavel Feldman 8ee286b366
chore: migrate to the testserver.initialize (#30226) 2024-04-03 12:50:56 -07:00
Yury Semikhatsky 5c5f0d77e4
chore: move implementation of Config and Project to TestConfig and TestProject (#30212)
Reference https://github.com/microsoft/playwright/issues/29768
2024-04-03 10:47:32 -07:00
Max Schmitt 43745210a5
fix(trace-viewer): exit if given trace.zip does not exist (#30222) 2024-04-03 18:47:03 +02:00
Max Schmitt 010bc29a3c
chore: harden markdown link validation (#30221) 2024-04-03 17:51:32 +02:00
Playwright Service 0734d1e733
feat(webkit): roll to r1995 (#30218)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2024-04-03 14:17:06 +02:00
Yury Semikhatsky 63f876a335
chore: remove overrides for type and status (#30211)
Reference https://github.com/microsoft/playwright/issues/29768
2024-04-02 17:42:13 -07: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
Yury Semikhatsky 39b3c93b85
docs: note about sharded projects in the merged config (#30184)
Fixes https://github.com/microsoft/playwright/issues/29841
2024-04-02 14:41:23 -07:00
Playwright Service 4baacba4f9
feat(chromium-tip-of-tree): roll to r1208 (#30207)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2024-04-02 16:29:09 +02: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
Pavel Feldman 6e799fdfa8
chore: do not run setup tasks on test run via server (#30202) 2024-04-01 15:31:09 -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
Playwright Service 7f88c4f482
feat(chromium-tip-of-tree): roll to r1207 (#30190)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2024-03-31 22:26:52 +02:00
Pavel Feldman 7afd4170ea
chore: opt into stdio forwarding (#30185) 2024-03-30 18:45:10 -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