Commit graph

551 commits

Author SHA1 Message Date
Andrey Lushnikov a89fe3ec5c
fix: support shadow DOM with Vue and React selectors (#10742)
There were two issues:
- we did not find VDom roots inside shadow DOM
- we incorrectly relied on DOM's `contain` method to determine if
  VDom's rendered node belongs to requested scope.

Fixes #10123
2021-12-07 11:23:37 -08:00
github-actions[bot] fe00c1f5d3
feat(firefox-beta): roll to r1307 (#10749)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2021-12-07 08:54:57 -08:00
Dmitry Gozman ec74fa6a76
feat(fill): support color and range input types (#10736) 2021-12-06 15:43:10 -08:00
Dmitry Gozman 516360be5f
fix(waitForEvent): include timeout value in the timeout message (#10738) 2021-12-06 15:42:57 -08:00
Max Schmitt 5610974312
chore: fix installing of branded browsers under non-root (#10640) 2021-12-06 14:49:22 -08:00
Pavel Feldman 7765131a14
feat(acceptDownload): revert acceptDownload (#10709) 2021-12-06 09:25:24 -08:00
Pavel Feldman 518d67add5
feat(test.info): expose information on the currently running test (#10708) 2021-12-06 09:25:11 -08:00
github-actions[bot] 3a1201eb61
feat(chromium): roll to r947661 (#10712)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2021-12-04 08:00:55 -08:00
Yury Semikhatsky b7ba039436
fix: make APIRequest tracing work on node 16 (#10705) 2021-12-03 15:46:57 -08:00
Pavel Feldman aef0444ff5
fix(focus): make sure strictness is respected (#10685) 2021-12-03 10:22:50 -08:00
Pavel Feldman f583f1604c
feat(locator.withText): allow narrowing locators to those with text (#10688) 2021-12-03 09:27:06 -08:00
Pavel Feldman 3daf008067
docs(locator): add section on working with the lists (#10651) 2021-12-02 20:29:38 -08:00
Yury Semikhatsky 8afd0b7d6a
feat(tracing): trace context APIRequest calls (#10684) 2021-12-02 15:53:47 -08:00
Dmitry Gozman 98e2f40bb0
docs: replace TestCase.suite with TestCase.parent (#10687)
It is there by mistake.
2021-12-02 14:24:43 -08:00
Pavel Feldman 5bde171657
fix(chromium): disable AutoExpandDetailsElement as it breaks the web (#10679) 2021-12-02 13:04:15 -08:00
Pavel Feldman 31e0a63fcd
feat(toBeChecked): allow passing checked: false (#10665) 2021-12-02 10:31:26 -08:00
Pavel Feldman 2ac9c08d0c
feat(inputValue): allow on labels, retarget (#10666) 2021-12-02 10:31:06 -08:00
Pavel Feldman b9731a904e
chore: add validations into check_deps (#10661) 2021-12-01 18:14:13 -08:00
Pavel Feldman 541248006c
chore: remove create-playwright, it is in monorepo by mistake (#10654) 2021-12-01 13:09:35 -08:00
Dmitry Gozman 6e00af3b2e
fix(click): revert layout shift logic (#10653) 2021-12-01 12:54:20 -08:00
Max Schmitt aba52be169
chore: use curl instead of wget when installing stable channels (#10637) 2021-12-01 18:26:28 +01:00
Pavel Feldman 127dacf5d4
fix(toHaveText): normalize zero width white space (#10623) 2021-12-01 09:21:21 -08:00
Saransh Miglani f05252874a
chore: minor code rearrangement (#10650) 2021-12-01 09:18:16 -08:00
Yury Semikhatsky d66b7aab3b
feat(expext): toBeOK for APIResponse (#10596) 2021-11-30 18:12:19 -08:00
Dmitry Gozman 729da65eba
fix(test runner): allow multiple missing snapshots per test (#10621)
Instead of failing right away, continue test execution but mark
the test as failed.
2021-11-30 17:50:19 -08:00
Pavel Feldman 11cbdcf58a
fix(tracing): fix tracing + debugger test (#10619) 2021-11-30 17:32:29 -08:00
Henric Trotzig 1bfc473bc8
chore(chromium): Capture off-screen content without resizing viewport (#10606) 2021-11-30 14:11:15 -08:00
github-actions[bot] bdfe92f8a7
feat(chromium): roll to r945826 (#10597)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2021-11-30 21:58:28 +01:00
Max Schmitt e7f1fd5c56
chore: escape CSS selectors in codegen correctly (#10608) 2021-11-30 21:13:41 +01:00
Max Schmitt 3337920c76
docs: clarify webServer ipv4/ipv6 and baseURL protocol (#10610) 2021-11-30 20:01:28 +01:00
Max Schmitt 682d1f41c7
fix(test-runner): wrong test-runner options got determined (#10607)
Follow-up for #10507
2021-11-30 19:59:35 +01:00
github-actions[bot] c9881a28f1
feat(firefox): roll to r1307 (#10605)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Max Schmitt <max@schmitt.mx>
2021-11-30 14:26:26 +01:00
github-actions[bot] 43e2adafde
feat(firefox-beta): roll to r1306 (#10600)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2021-11-30 12:48:23 +01:00
Max Schmitt 41070a2f55
chore: validate client/server version match for remote connections (#10542)
* chore: validate client/server version match on connect

* only validate major and minor
2021-11-30 08:36:00 +01:00
Pavel Feldman 3997671ab7
fix(selectors): do not hide selector errors (#10595) 2021-11-29 17:13:24 -08:00
Max Schmitt 9337aa3cdf
fix(test-runner): webServer port detection on Node.js 17 (#10538) 2021-11-29 19:36:35 +01:00
Joel Einbinder 15053d9b3b
fix(test-runner): apply default options to all browserTypes (#10507) 2021-11-29 12:21:15 -05:00
Max Schmitt 293c233a49
docs(test-runner): add webServer (#10531) 2021-11-29 18:01:14 +01:00
Saransh Miglani ca1064e6c1
download code re-organized (#10568) 2021-11-29 08:53:33 -08:00
github-actions[bot] f7da3c31f9
feat(chromium): roll to r945495 (#10560)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2021-11-27 08:53:11 +01:00
Joel Einbinder 20c0facfb9
fix(test runner): dont mangle test names with multiple dashes (#10447) 2021-11-24 19:36:38 -05:00
Max Schmitt da02c2e2c8
chore: add --dry-run to install-deps CLI command (#10520) 2021-11-25 01:04:42 +01:00
Pavel Feldman 5d19f16601
feat(esm): introduce experimental PW_EXPERIMENTAL_TS_ESM option (#10519) 2021-11-24 14:17:01 -08:00
Max Schmitt af4a1c2d26
docs(python): add request API examples (#10512) 2021-11-24 21:55:03 +01:00
Max Schmitt c08bb427cf
chore(create-playwright): add stable channels to example config (#10514) 2021-11-24 21:50:29 +01:00
Pavel Feldman 7eb3f76f49
feat(esm): allow running tests in type module projects (#10503) 2021-11-24 12:42:48 -08:00
Dmitry Gozman b8b6c7a220
fix(chromium): websocket handshake comes twice (#10518)
Sometimes we get "Network.webSocketWillSendHandshakeRequest" in Chromium.
Perhaps websocket is restarted because of chrome.webRequest extensions api?
Or maybe the handshake response was a redirect?

This reports websocket twice and triggers an assert.
2021-11-24 10:46:32 -08:00
Max Schmitt 85197e68c9
chore: support range requests in trace viewer http server (#10434) 2021-11-23 21:37:55 +01:00
Pavel Feldman 206a877cea
fix(trace-viewer): multiple iframe and UX fixes (#10486) 2021-11-23 11:36:18 -08:00
Max Schmitt 5a8010cf4f
fix: noncompliant Firefox User-Agents (#10492) 2021-11-23 18:56:22 +01:00
Ross Wollman 854f321532
feat(api): add explicit async testInfo.attach (#10121)
feat(api): add explicit async testInfo.attach

We add an explicit async API for attaching file paths (and Buffers) to
tests that can be awaited to help users ensure they are attaching files
that actually exist at both the time of the invocation and later when
reporters (like the HTML Reporter) run and package up test artifacts.

This is intended to help surface attachment issues as soon as possible
so you aren't silently left with a missing attachment
minutes/days/months later when you go to debug a suddenly breaking test
expecting an attachment to be there.

NB: The current implemntation incurs an extra file copy compared to
manipulating the raw attachments array. If users encounter performance
issues because of this, we can consider an option parameter that uses
rename under the hood instead of copy. However, that would need to be
used with care if the file were to be accessed later in the test.
2021-11-23 09:30:53 -08:00
github-actions[bot] 2d4982e052
feat(chromium): roll to r943925 (#10484)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2021-11-23 11:21:15 +01:00
Joel Einbinder 6d3bb458f9
fix(firefox): round down mouse coordinates (#10483) 2021-11-23 02:55:32 -05:00
Dmitry Gozman 7d3672899f
fix(tracing): race in stopChunk (#10481)
Consider the following scenario:
- Tracing is started.
- API call is made (e.g. page.waitForResponse), almost finishes, and
  enters onAfterCall where it starts a snapshot.
- tracing.stopChunk is called, and waits for existing actions to finish.
  However, it does so by calling onAfterCall one more time.
- tracing.stopChunk removes instrumentation listener and returns
  to the client.
- Client starts zipping files.
- Original API call finishes the snapshot and saves it to the trace file.

This results in trace file being written to while the zip is still working.
2021-11-22 20:08:09 -08:00
Joel Einbinder d70e37de80
feat: locator.dragTo (#10287) 2021-11-22 20:27:26 +01:00
Joel Einbinder 06ab3c0fda
feat: consider fieldset and aria-disabled when checking if an element is enabled (#9927)
Co-authored-by: Max Schmitt <max@schmitt.mx>
2021-11-22 20:25:06 +01:00
Dmitry Gozman e647f0420c
docs: add more references to TestInfo.retry (#10472) 2021-11-22 10:06:20 -08:00
Max Schmitt 14471fd79f
chore: fix CLI --help when used in driver (#10412) 2021-11-22 18:34:22 +01:00
github-actions[bot] 2290232339
feat(chromium): roll to r943346 (#10452)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2021-11-21 00:43:30 +01:00
Yury Semikhatsky 9c23a78c32
chore: throw instead of returning error from fetch (#10451) 2021-11-19 20:32:29 -08:00
Dmitry Gozman fde2f6a77f
docs: separate doc for test timeouts (#10448) 2021-11-19 17:06:46 -08:00
Pavel Feldman 103b6121b8
fix(trace-viewer): provide hints on how to open trace statically (#10450) 2021-11-19 16:29:27 -08:00
Pavel Feldman a73e6bbd0e
chore: drop wrapApiCall (2) (#10445) 2021-11-19 16:28:11 -08:00
Dmitry Gozman 4eaeb3b59c
docs: explain that beforeAll/afterAll run again in the new worker process (#10446) 2021-11-19 13:47:30 -08:00
Dmitry Gozman 0302e759df
feat(test runner): allow top-level test.fixme similar to test.skip (#10250)
```js
test.fixme('my test name', () => {});
```
2021-11-19 11:40:40 -08:00
Pavel Feldman 2a98800ac0
chore: drop wrapApiCall (1) (#10428) 2021-11-19 10:12:48 -08:00
Max Schmitt e87b56a2e5
chore: verify supported Node.js version during runtime (#10406) 2021-11-19 19:05:17 +01:00
Max Schmitt b8b0d7139c
chore: bump ESLint to version 8 (#10433) 2021-11-19 18:48:33 +01:00
github-actions[bot] e76edef3e2
feat(webkit): roll to r1579 (#10409)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Max Schmitt <max@schmitt.mx>
2021-11-19 11:11:27 +01:00
Pavel Feldman b302152789
chore(zones): prepare to remove wrapApiCall, introduce zones (#10427) 2021-11-18 22:30:09 -08:00
Dmitry Gozman d9f849fb14
feat(test runner): replace declare/define with "options" (#10293)
1. Fixtures defined in test.extend() can now have `{ option: true }` configuration that makes them overridable in the config. Options support all other properties of fixtures - value/function, scope, auto.
```
const test = base.extend<MyOptions>({
  foo: ['default', { option: true }],
});
```

2. test.declare() and project.define are removed.

3. project.use applies overrides to default option values and nothing else. Any test.extend() and test.use() calls take priority over config options.

Required user changes: if someone used to define fixture options with test.extend(), overriding them in config will stop working. The solution is to add `{ option: true }`.

```
// Old code
export const test = base.extend<{ myOption: number, myFixture: number }>({
  myOption: 123,
  myFixture: ({ myOption }, use) => use(2 * myOption),
});

// New code
export const test = base.extend<{ myOption: number, myFixture: number }>({
  myOption: [123, { option: true }],
  myFixture: ({ myOption }, use) => use(2 * myOption),
});
```
2021-11-18 15:45:52 -08:00
divdavem 17a2454226
feat(cli): add --proxy-bypass option (#10181) 2021-11-18 15:41:16 -08:00
Dmitry Gozman 8f43f4c98f
feat(serial): better errors from beforeAll (#10419)
When beforeAll hook times out or fails with an exception, we now
close the context and show a nice error.
2021-11-18 14:36:55 -08:00
github-actions[bot] 24cc266de0
feat(chromium): roll to r941965 (#10372)
Co-authored-by: Max Schmitt <max@schmitt.mx>
2021-11-18 18:46:44 +01:00
Yury Semikhatsky 0ca10da166
fix: compute file field mime type on the server (#10394) 2021-11-17 18:12:26 -08:00
Dmitry Gozman bd93fc499f
fix(html reporter): show missing attachments as warnings (#10400) 2021-11-17 18:03:13 -08:00
Dmitry Gozman ce2c0c59a7
feat(expect): show expect timeout in the error message (#10388)
Makes it easier to understand that expect does indeed have a separate timeout.

```
    Error: expect(received).toHaveCount(expected) // deep equality

    Expected: 0
    Received: 1

    Call log:
      - expect.toHaveCount with timeout 500ms
      - waiting for selector "span"
      -   selector resolved to 1 element
      -   unexpected value "1"
      -   selector resolved to 1 element
      -   unexpected value "1"
      -   selector resolved to 1 element
      -   unexpected value "1"
```
2021-11-17 17:28:30 -08:00
Max Schmitt 0781d0303b
docs(python): enable web-first assertions (#10390) 2021-11-18 00:46:30 +01:00
Pavel Feldman 70ede0d987
chore: use channel traits (#10389) 2021-11-17 15:26:01 -08:00
Yury Semikhatsky 7746cb52a7
fix: do not send Fetch.continueRequest twice for auth requests (#10382) 2021-11-17 11:42:06 -08:00
Andrey Lushnikov 93dbcefa46
fix: disable 'AcceptCHFrame' chromium field trial (#10380)
References #10376
2021-11-17 10:41:53 -08:00
Yury Semikhatsky 08a7470b0a
fix: API response to string (#10364) 2021-11-16 15:42:35 -08:00
Andrey Lushnikov 82002b2803
fix: fix proper-lock-file configuration (#10356)
Turns out we were using wrong formula; with the config we had in place,
proper-lock-file would give up to aquire lock after 49 seconds of
waiting.

With the proper configuration, we'll keep re-trying for 10 minutes.

Fixes #10354
2021-11-16 13:49:01 -08:00
Pavel Feldman 9485e62a00
chore(trace-viewer): only show source tab when soureces are includes (#10338) 2021-11-15 23:37:39 -08:00
Dmitry Gozman 638ebd6dd6
fix(test runner): do not validate fixtures in tests/hooks that are never run (#10328) 2021-11-15 13:17:26 -08:00
Pavel Feldman 1c9c0dc2e6
feat(webkit): roll to r1578 (#10323) 2021-11-15 08:43:51 -08:00
github-actions[bot] 5ad6cd2796
feat(firefox): roll to r1306 (#10297)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2021-11-15 16:55:06 +01:00
github-actions[bot] 3b2b8e2f5e
feat(firefox-beta): roll to r1305 (#10298)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2021-11-15 16:54:53 +01:00
Max Schmitt 65a9037461
chore(trace-viewer): add missing uploadedTraceName to the useEffect dependencies (#10294)
Fixes ESLint warning
2021-11-13 09:36:36 +01:00
Dmitry Gozman 6a46711347
fix(chromium): race between loadingFailed and requestPaused (#10289) 2021-11-12 19:06:53 -08:00
Pavel Feldman b0723c0621
fix(webkit): disable accelerated compositing on windows (#10264) 2021-11-12 08:50:25 -08:00
Dmitry Gozman 4bb123d4b7
fix(test runner): route more errors to reporter (#10263)
For example, top-level errors in files or global setup issues.
2021-11-12 06:47:41 -08:00
Andrey Lushnikov bd1ce399e3
fix(html-report): fix command to open HTML report (#10231) 2021-11-12 00:12:23 -08:00
github-actions[bot] 7048ecdc6f
feat(firefox): roll to r1305 (#10267)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2021-11-11 23:59:54 -08:00
github-actions[bot] 840db7b6e0
feat(firefox-beta): roll to r1304 (#10265)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2021-11-11 17:44:30 -08:00
Pavel Feldman 8dcd77270f
fix(sigint): remove sigint handler early (#10266) 2021-11-11 17:14:36 -08:00
Dmitry Gozman 7eec66d0f9
chore(test runner): route runner errors through Reporter.onError (#10257) 2021-11-11 16:48:08 -08:00
github-actions[bot] b76daf361d
feat(webkit): roll to r1577 (#10255)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2021-11-11 15:37:05 -08:00
Max Schmitt 24cfcf867e
chore: create-playwright config nits & test-runner intro docs (#10253) 2021-11-11 22:45:07 +01:00
Dmitry Gozman f38f611478
chore: add npm run lint-tests (#10252) 2021-11-11 13:27:50 -08:00