Commit graph

1262 commits

Author SHA1 Message Date
Andrey Lushnikov 42876a0528
fix: support PWDEBUG=0 to disable debug (#11611)
Fixes #11606
2022-01-25 08:40:24 -08:00
Andrey Lushnikov e10cb4a619
devops: fix Firefox on Ubuntu 20.04 aarch64 (#11602)
Turns out Firefox 96 now requires libxtst6 on Ubuntu 20.04 aarch64.
2022-01-24 16:20:28 -08:00
Ross Wollman 64e7557fb9
fix: falsey behavior in route.continue, page.post, testInfo.attach (#11421)
In several of the Playwright APIs, falsey values were not handled correctly. This changeset adds tests (and some fixes):

- route.continue: If options.postData was the empty string, the continue failed to override the post data.
- page.post (application/json with options.data: false|''|0|null): Raw falsey values were getting dropped (i.e. you can't do the equivalent of curl --header application/json … -d 'false'). This has been fixed with most values across all browsers, but an additional fix is needed for 'null' which the channel serializer treats extra specially.
- testInfo.attach: This didn't get reported as an error when options.path was the empty string, but should have been.
#11413 (and its fix #11414) inspired this search as they are the same
class of bug.
2022-01-24 15:06:36 -08:00
Dmitry Gozman a5bc2efc18
chore: followRedirects in PlaywrightClient (#11599) 2022-01-24 12:41:27 -08:00
Pavel Feldman 136fab7041
fix(prepare): don't change package files on prepare (#11579) 2022-01-24 11:25:24 -08:00
Pavel Feldman 9542b007cf
fix(esm): don't emit module shorthand warning (#11596) 2022-01-24 11:22:56 -08:00
campersau 4d42f6a1c4
chore: remove unused _waitingForObject from Connection (#11474) 2022-01-24 18:58:57 +01:00
github-actions[bot] 5382a794fe
feat(chromium): roll to r960211 (#11487)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Andrey Lushnikov <aslushnikov@gmail.com>
2022-01-24 08:40:45 -08:00
Pavel Feldman 0b99d83911
chore: include config dir in quick list report (#11563) 2022-01-22 17:02:46 -08:00
Max Schmitt f29a673b4c
fix: do not mute route handler exceptions (#11555) 2022-01-22 22:19:32 +01:00
Yury Semikhatsky ab9d5a0dc4
chore(tracing): add tracing to APIRequestContext (#11502) 2022-01-22 11:25:13 -08:00
Pavel Feldman baf0e5b47a
chore: implement lightweight test listing (#11551) 2022-01-21 19:11:22 -08:00
Yury Semikhatsky 295d0a65c3
fix(har): do not hang on cached resources (#11556) 2022-01-21 16:31:00 -08:00
Max Schmitt 3fb3ba7b96
chore: fix html report bottom padding (#11541) 2022-01-21 13:58:55 +01:00
github-actions[bot] 7183c06569
feat(firefox): roll to r1315 (#11535)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2022-01-21 10:55:47 +01:00
github-actions[bot] d08d333f23
feat(firefox-beta): roll to r1315 (#11536)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2022-01-21 10:55:33 +01:00
Pavel Feldman 6b3e596fd8
fix(baseurl): support path-less baseurl (#11527) 2022-01-20 18:11:56 -08:00
Max Schmitt fb139cefac
fix: playwright.locator.hasText RegExp flag serialisation in Console API (#11516) 2022-01-21 01:05:37 +01:00
github-actions[bot] 33c82a42c0
feat(webkit): roll to r1599 (#11524) 2022-01-20 15:44:13 -08:00
Pavel Feldman 50fa839e64
chore: include transpilation mode in the compute cache hash (#11521) 2022-01-20 13:33:40 -08:00
Yury Semikhatsky c510819407
fix(windows): hide child console window when running PrintDeps (#11468) 2022-01-19 10:38:51 -08:00
Pavel Feldman a65f7066d5
fix(webkit): improve orientation detection (#11481) 2022-01-19 10:07:38 -08:00
Dmitry Gozman 6928c84ac2
chore: move some files out of server/common (#11466)
This is a directory for sharing code between Node and Web.
2022-01-18 19:13:51 -08:00
github-actions[bot] bfe7b7cc20
feat(firefox): roll to r1314 (#11459)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2022-01-18 09:28:04 -08:00
github-actions[bot] ae8294dd04
feat(webkit): roll to r1597 (#11463)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2022-01-18 09:27:53 -08:00
Max Schmitt b79daec8e0
chore: make it possible to override Locator.dragTo(strict) (#11457) 2022-01-18 17:51:15 +01:00
Ross Wollman 33f32368e5
fix(test runner): dispatcher transformation of empty attachments (#11414) 2022-01-17 18:47:24 -08:00
Pavel Feldman 815e121445
feat(highlight): update highlight from raf (#11443) 2022-01-17 18:33:35 -08:00
Pavel Feldman 8ecf581b45
chore: focus by line should override only (#11427) 2022-01-16 08:47:09 -08:00
Pavel Feldman 8b0ef4ad6b
chore: introduce oop testing mode for debugging (#11428) 2022-01-15 19:25:32 -08:00
Yury Semikhatsky cfb86a74fa
fix(webkit): filechooer interception after process swap (#11415) 2022-01-14 17:33:07 -08:00
Max Schmitt fb22c859d6
chore: add browser like UA to browser fetcher (#11006)
Drive-by: unify all Playwright user agents across the board.

Co-authored-by: Andrey Lushnikov <lushnikov@chromium.org>
2022-01-14 02:46:17 -08:00
Max Schmitt badb5b4d13
chore(pw-test): forward web-server stdout to debug target (#11384) 2022-01-13 23:55:46 +01:00
Dmitry Gozman 9d5bf0e90d
fix(test runner): fixture teardown double error, testInfo.attach() (#11365)
- Use file path, not content to calculate the attachment hash.
- Always cleanup fixture from the list on teardown, to avoid reporting
  teardown error multiple times: from the test, and from the cleanup.
2022-01-13 10:38:47 -08:00
Dmitry Gozman 73fed66896
docs: add comments to Promise.all snippets with explanation (#11379)
Drive-by: more locators.
2022-01-13 10:38:22 -08:00
Pavel Feldman feb7148b3f
chore: don't write into stdout from the test runner, use reporters instead (#11367) 2022-01-12 19:52:40 -08:00
Andrey Lushnikov 9285596806
chore: cut v1.18.0 (#11358)
Drive-by: fix the `//utils/bump_package_versions.js` script.
2022-01-12 11:50:44 -08:00
Pavel Feldman 853757930d
chore: don't log twice twice (#11361) 2022-01-12 11:37:49 -08:00
William Bergeron-Drouin a70f4e6410
fix(android): use isRegExp for a more robust check in different execution contexts (#11359) 2022-01-12 11:04:18 -08:00
Pavel Feldman 5751a1255b
fix(html): set default link color for safari (#11353) 2022-01-12 09:05:45 -08:00
Andrey Lushnikov 6f932fcb4a
fix: default list reporter should dump stderr to stderr (#11351)
This is consistent with all other reporters we have in place.
2022-01-12 07:43:25 -08:00
Pavel Feldman a12e76b52b
chore: implement locator._highlight / playwright._hideHighlight (#11339) 2022-01-12 07:37:48 -08:00
github-actions[bot] 2b6aeb0902
feat(webkit): roll to r1596 (#11344)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2022-01-12 01:42:13 -08:00
Dmitry Gozman 359d523ec3
fix(selectors): allow :scope with additional css (#11338) 2022-01-11 18:40:29 -08:00
Dmitry Gozman 4efb30999f
feat(request): show request context methods as steps (#11337) 2022-01-11 17:33:41 -08:00
Dmitry Gozman 807f70bccf
fix(electron): remove timeout from electronApp.close (#11336)
We do not have a timeout for any other close method, such as
browserContext.close or browser.close, and hitting default
30 seconds is very realistic with large Electron apps.
2022-01-11 17:12:18 -08:00
Andrey Lushnikov 2a0930c7a4
docs: clarification about trailing slash in docs (#11326)
Fixes #10557
2022-01-11 07:50:58 -08:00
Dmitry Gozman da1f39fb29
chore(test runner): refactor worker runner parts (#11316)
This will make it easier to change in the future.
2022-01-10 20:25:56 -08:00
Dmitry Gozman d36ff8a96c
fix(test runner): remove test output for failures (#11308) 2022-01-10 13:22:09 -08:00
Dmitry Gozman 14fd837e94
fix(test runner): hide beforeAll/afterAll hooks from the reporter api (#11306)
This api is not ready yet.
2022-01-10 12:09:51 -08:00
Andrey Lushnikov 7b1fecc009
fix: default to en-US locale in all browsers in Playwright Test (#11133)
It makes sense to default to en-US by default across all our browsers in Playwright Test.

Fixes #11127
2022-01-10 08:37:55 -08:00
github-actions[bot] d31f13468a
feat(webkit): roll to r1592 (#11261)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Andrey Lushnikov <aslushnikov@gmail.com>
2022-01-10 05:02:07 -08:00
github-actions[bot] 1dbf1c287d
feat(firefox-beta): roll to r1314 (#11271)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2022-01-10 03:25:52 -08:00
github-actions[bot] c0366803fd
feat(firefox): roll to r1313 (#11270)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2022-01-10 03:24:58 -08:00
github-actions[bot] a423a4a9ed
feat(chromium): roll to r956323 (#11268)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2022-01-09 20:44:07 -05:00
Michaël De Boey ff5f75dc10
fix: pin colors to 1.4.0 (#11274) 2022-01-09 16:18:21 -08:00
Pavel Feldman dc07fa6da6
fix(locator.count): do not touch main workd when computing count (#11256) 2022-01-07 15:52:14 -08:00
Yury Semikhatsky 37a97c4201
feat(tracing): capture network failures (#11237) 2022-01-07 11:22:01 -08:00
Dmitry Gozman 058f98d3dd
fix(test runner): revert error location from top frame (#11250)
This does not play nicely with some internal Playwright errors, so
it needs more tweaks.
2022-01-07 11:06:47 -08:00
Dmitry Gozman 19460d50e4
chore(test runner): process-wide cache of required test files (#11230)
This is a preparation to TestRunner api, where we should be
able to run tests multiple times in the same runner process.
2022-01-06 15:38:10 -08:00
Pavel Feldman 16dafba153
fix(html): prevent image diff from flickering (#11184) 2022-01-06 15:19:16 -08:00
Pavel Feldman e1772f15b5
fix(click): don't fail on stale context while clicking (#11228) 2022-01-06 15:15:11 -08:00
Dmitry Gozman 8e75dbffaa
fix(errors): waitForEvent/Request/Response should point to the api call (#11229) 2022-01-06 14:47:52 -08:00
Pavel Feldman 5fa7d19f1c
feat(html): render inline attachments as monospace (#11214) 2022-01-06 09:29:55 -08:00
Pavel Feldman 373042ed89
chore: don't allow importing @playwright/test twice (#11218) 2022-01-06 09:29:05 -08:00
Dmitry Gozman be896848bb
fix(selectors): properly determine visibility of display:contents (#11212) 2022-01-05 16:54:15 -08:00
Dmitry Gozman 3ecac56cc0
fix(test runner): testInfo.attach api review changes (#11211)
Remove overload, require name, merge options.
2022-01-05 16:39:33 -08:00
Dmitry Gozman f77c874e8a
feat(test runner): make _extendTest experimental (#11210)
Hidden from types and docs.
2022-01-05 15:54:00 -08:00
Dmitry Gozman ccc61e31ea
chore(test runner): preparation for TestRunner api (#11209) 2022-01-05 15:49:01 -08:00
Dmitry Gozman 3839917eb6
chore(test runner): move config loading to runner (#11186)
In preparation for the TestRunner api.
2022-01-05 13:44:29 -08:00
Ross Wollman 3a4b7fa792
fix(html reporter): skip img bits with non-images (#11188) 2022-01-05 09:04:08 -08:00
Dmitry Gozman 1dbbcd1b37
fix(codegen): polyfill CSS.escape (#11181)
Some site (for example, fb.com) delete CSS.escape, so we should use the polyfill.
2022-01-04 17:24:53 -08:00
Dmitry Gozman 16a779a5ff
fix(test runner): show codeframe and location from the error top stack frame (#11179)
Previously, reporter would look for a stack frame directly in the test file.
Often times, that is not a top stack frame, especially when the test uses
some helper functions.

This changes error snippets and locations to use the top frame. When top
frame does not match the test file, we additionally show the location
to avoid confusion:

```
  1) a.spec.ts:7:7 › foobar ========================================================================

    Error: oh my

       at helper.ts:5

      3 |
      4 |       export function ohMy() {
    > 5 |         throw new Error('oh my');
        |               ^
      6 |       }
      7 |

        at ohMy (.../reporter-base-should-print-codeframe-from-a-helper/helper.ts:5:15)
        at .../reporter-base-should-print-codeframe-from-a-helper/a.spec.ts:8:9
        at FixtureRunner.resolveParametersAndRunHookOrTest (.../src/fixtures.ts:281:12)
```
2022-01-04 16:00:55 -08:00
Andrey Lushnikov 13dd41c2e3
devops: fix self-hosted runner stack collection (#11169)
In case of self-hosted github runners, it's much easier to checkout
under `playwright-internal` folder name instead of a default
`playwright` name. This confuses our stack collection.

This patch makes it generic.
2022-01-04 06:23:28 -08:00
github-actions[bot] 0332b2a7a9
feat(chromium): roll to r954870 (#11163)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2022-01-04 04:54:59 -08:00
Pavel Feldman 7bfa6f9b5f
feat(html): group similar items in the report (#11160) 2022-01-03 21:17:17 -08:00
Dmitry Gozman 976dedda45
feat(input): restore modified layout shift check (#11032)
This changes previous layout shift attempt (see #9546)
to account for more valid usecases:
- On the first event that is intercepted we enforce the hit target. This
  is similar to the current mode that checks hit target before the action,
  but is better timed.
- On subsequent events we assume that everything is fine. This covers more
  scenarios like react rerender, glass pane on mousedown, detach on mouseup.

This check is enabled by default, with `process.env.PLAYWRIGHT_NO_LAYOUT_SHIFT_CHECK`
to opt out.
2022-01-03 17:46:04 -08:00
Pavel Feldman a0aeaeb929
test: expose repeatEachIndex (#11158) 2022-01-03 17:29:54 -08:00
github-actions[bot] c0201f26b5
feat(chromium): roll to r954674 (#11147)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2022-01-03 09:48:35 -08:00
github-actions[bot] a090907305
feat(firefox-beta): roll to r1313 (#11140)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2021-12-30 14:59:39 -08:00
Andrey Lushnikov 237b4d5821
devops: download new MacOS 12 WebKit builds (#11066)
Drive-by: simplify management of executable paths since they are
the same for each platform.

References #11031
2021-12-29 20:40:45 -08:00
Andrey Lushnikov 056d310e20
feat(ffmpeg): roll ffmpeg to 1007 (#11081)
This build:
- Includes a native build for Mac Arm64
- Changes executable name for the linux arm64 build
2021-12-29 20:10:29 -08:00
github-actions[bot] d43f78f384
feat(firefox): roll to r1312 (#11124)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Andrey Lushnikov <aslushnikov@gmail.com>
2021-12-29 17:47:32 -08:00
github-actions[bot] 450c8086b9
feat(firefox-beta): roll to r1312 (#11125)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2021-12-29 16:54:58 -08:00
Ross Wollman dadb5cbc30
fix(html reporter): fix too much strikethrough in diffs (#11115)
Textual snapshot diffs were previously broken in the HTML Report. The strikethrough'd text extended beyond the intended region.

HTML Report Before: 
<img width="693" alt="Screen Shot 2021-12-27 at 4 43 35 PM" src="https://user-images.githubusercontent.com/11915034/147518750-a60f9002-6eed-48a1-a412-20fabd076fa6.png">

HTML Report After:
<img width="206" alt="Screen Shot 2021-12-27 at 4 48 37 PM" src="https://user-images.githubusercontent.com/11915034/147518762-19a4c8f9-ccc3-4a3c-a962-5a42edc6fc5d.png">

This now matches what's expected and shown in the terminal (which has always been correct):

<img width="1384" alt="Screen Shot 2021-12-27 at 4 36 29 PM" src="https://user-images.githubusercontent.com/11915034/147518799-f538259e-5a45-4d6f-916c-a12ccb620c5b.png">

NB: This MR is a workaround, but not a root cause fix. It works, but I never fully got to the root cause so a bug upstream may be required. It's unclear whether it's (1) in [`colors`](https://www.npmjs.com/package/colors), (2) in [`ansi-to-html`](https://www.npmjs.com/package/ansi-to-html), or (3) Playwright's use of the two. Since the terminal output is correct, I suspect it is in `ansi-to-html`. For example:

```js
const colors = require("colors");
const Convert = require('ansi-to-html');
const convert = new Convert();

// original (strike incorrectly wraps everything in the HTML)
console.log(convert.toHtml(colors.strikethrough("crossed out") + ' ' + colors.red("red")))
// prints: <strike>crossed out <span style="color:#A00">red<span style="color:#FFF"></span></span></strike>

// workaround
console.log(convert.toHtml(colors.reset(colors.strikethrough("crossed out")) + ' ' + colors.red("red")))
// prints: <strike>crossed out</strike> <span style="color:#A00">red<span style="color:#FFF"></span></span>
```

Fixes #11116
2021-12-28 09:56:34 -08:00
github-actions[bot] db47b3e392
feat(chromium): roll to r953978 (#11097)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2021-12-27 10:13:18 -07:00
Dmitry Gozman f933759ad1
chore(test runner): minor improvements (#11067)
- Types for fixture options and more.
- Refined type for deadline runner.
2021-12-22 09:59:58 -08:00
github-actions[bot] 97a43b4bed
feat(chromium): roll to r952821 (#11040)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2021-12-22 09:14:23 -08:00
Yury Semikhatsky 8f9eaf7cba
fix(types): allow specifying element type in locator.evaluate callback (#11048) 2021-12-21 13:17:45 -08:00
Dmitry Gozman f5304e3bda
fix(fixtures): await fixture teardown when shutting down the worker (#11033) 2021-12-20 16:19:21 -08:00
github-actions[bot] 16ae0af0fd
feat(chromium): roll to r952597 (#11010)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2021-12-18 10:59:42 -08:00
Dmitry Gozman 2d00836f0e
fix(test runner): show the location of afterAll timeout (#11007) 2021-12-18 09:32:41 -08:00
Dmitry Gozman c9ba49936f
feat(reporters): show retry #x when running a test (#11003) 2021-12-17 21:07:04 -08:00
Pavel Feldman 8f98074fc8
chore: add blink-diff third party library (#10984) 2021-12-17 15:53:37 -08:00
Dmitry Gozman b6aad54b9f
fix(test runner): test.setTimeout whould not break debugging (#11004)
We ignore test.setTimeout() when timeout is already zero for debugging.
2021-12-17 15:17:48 -08:00
Dmitry Gozman f5780be41b
fix(list reporter): make sure that duration suffix survives truncation (#11002) 2021-12-17 13:08:02 -08:00
Pavel Feldman 037baf0945
fix(trace-viewer): scroll action into view (#10978) 2021-12-17 12:20:01 -08:00
Yury Semikhatsky eb9c8a8f06
fix(tracing): check if source exists before adding to zip (#10986) 2021-12-17 11:52:28 -08:00
Dmitry Gozman 0d277fa589
fix(selenium): allow setting additional capabilities (#11000)
Also clarify docs about Selenium v4.
2021-12-17 11:33:24 -08:00
musou1500 7d39d345c2
fix(tracing): trace frame (#10846) 2021-12-17 10:43:19 -08:00
Dmitry Gozman 93ad12978c
fix(test runner): disable expect, action and navigation timeouts on debug (#10958)
We disable these timeouts when test timeout is set to zero.
This covers PWDEBUG=1, --debug and manual `test.setTimeout(0)` scenarios.
2021-12-16 18:32:46 -08:00
Dmitry Gozman dd57843404
fix(inspector): do not show internal calls (#10982)
Also mark setDefault{Navigation,}Timeout as always internal.
2021-12-16 17:17:24 -08:00
Andrey Lushnikov 773ebe04c6
chore: follow-up to handling docker corner cases (#10981) 2021-12-16 15:29:20 -08:00
Mario Nebl 70ed020c87
fix: handle docker edge cases (#10501)
## Before

* When docker wasn't running: crashed with a TypeError 
* When any image without `RepoTags` was present: crashed with TypeError
* Typo in recommended command ("playwight")
* No indication of `PW_TEST_IMAGE` env var in error output

<details>
<summary>Docker not running</summary>

```
Using config at ~redacted/playwright.config.ts
ERROR get /images/json 500 dial unix docker.raw.sock: connect: connection refused

TypeError: Cannot read property 'find' of null
    at launchDockerGridAgent (~redacted/node_modules/playwright-core/lib/grid/dockerGridFactory.js:67:26)
    at processTicksAndRejections (node:internal/process/task_queues:96:5)
    at Object.launch (~redacted/node_modules/playwright-core/lib/grid/dockerGridFactory.js:43:9)
    at GridServer.createAgent (~redacted/node_modules/playwright-core/lib/grid/gridServer.js:356:5)
    at launchDockerContainer (~redacted/node_modules/@playwright/test/lib/cli.js:259:3)
    at Runner._run (~redacted/node_modules/@playwright/test/lib/runner.js:236:98)

Running 1 test using 1 worker

     test.ts:9:1 › some redacted description
ERROR get /images/json 500 dial unix docker.raw.sock: connect: connection refused

TypeError: Cannot read property 'find' of null
    at launchDockerGridAgent (~redacted/node_modules/playwright-core/lib/grid/dockerGridFactory.js:67:26)
    at processTicksAndRejections (node:internal/process/task_queues:96:5)
    at Object.launch (~redacted/node_modules/playwright-core/lib/grid/dockerGridFactory.js
```

</details>

<details>
<summary>Image without repo tags</summary>

```
Using config at ~redacted/playwright.config.ts
TypeError: Cannot read property 'includes' of undefined
    at ~redacted/node_modules/playwright-core/lib/grid/dockerGridFactory.js:67:55
    at Array.find (<anonymous>)
    at launchDockerGridAgent (~redacted/node_modules/playwright-core/lib/grid/dockerGridFactory.js:67:26)
    at processTicksAndRejections (node:internal/process/task_queues:96:5)
    at Object.launch (~redacted/node_modules/playwright-core/lib/grid/dockerGridFactory.js:43:9)
    at GridServer.createAgent (~redacted/node_modules/playwright-core/lib/grid/gridServer.js:356:5)
    at launchDockerContainer (~redacted/node_modules/@playwright/test/lib/cli.js:259:3)
    at Runner._run (~redacted/node_modules/@playwright/test/lib/runner.js:236:98)

Running 1 test using 1 worker

     some-test.ts › some description
TypeError: Cannot read property 'includes' of undefined
    at ~redacted/node_modules/playwright-core/lib/grid/dockerGridFactory.js:67:55
    at Array.find (<anonymous>)
    at launchDockerGridAgent (~redacted/node_modules/playwright-core/lib/grid/dockerGridFactory.js:67:26)
    at processTicksAndRejections (node:internal/process/task_queues:96:5)
    at Object.launch (~redacted/node_modules/playwright-core/lib/grid/dockerGridFactory.j  ✘  editor-editor-wysiwyg--editor-wysiwyg.vr.ts:9:1 › actual element matches expected element (26ms)


  1) some-test.ts › some description =====

    'Grid agent creation failed'


  1 failed
  some-test.ts › some description ======
```

</details>

## After

* Helpful error message if docker isn't running
* Doesn't crash when local-only images in list
* No typo in `playwright install docker-image` command
* When other playwright images are found they are listed and  `PW_TEST_IMAGE` is mentioned

### After: Docker not running

```
Using config at ~redacted/playwright.config.ts
Error fetching json: Error: connect ECONNREFUSED /var/run/docker.sock
Error:
╔═════════════════════════════════════════╗
║ Failed to list docker images            ║
║ Please ensure docker daemon is running. ║
║                                         ║
║ <3 Playwright Team                      ║
╚═════════════════════════════════════════╝
    at launchDockerGridAgent (~redacted/node_modules/playwright-core/lib/grid/dockerGridFactory.js:61:11)
    at processTicksAndRejections (node:internal/process/task_queues:96:5)
    at Object.launch (~redacted/node_modules/playwright-core/lib/grid/dockerGridFactory.js:43:9)
    at GridServer.createAgent (~redacted/node_modules/playwright-core/lib/grid/gridServer.js:356:5)
    at launchDockerContainer (~redacted/node_modules/@playwright/test/lib/cli.js:259:3)
    at Runner._run (~redacted/node_modules/@playwright/test/lib/runner.js:236:98)

Running 1 test using 1 worker

     test.ts:9:1 › description
Error fetching json: Error: connect ECONNREFUSED /var/run/docker.sock
Error:
╔═════════════════════════════════════════╗
║ Failed to list docker images            ║
║ Please ensure docker daemon is running. ║
║                                         ║
║ <3 Playwright Team                      ║
╚═════════════════════════════════════════╝
    at launchDockerGridAgent (~redacted/node_modules/playwright-core/lib/grid/dockerGridFactory.js:61:11)
    at processTicksAndRejections (node:internal/process/task_queues:96:5)
    at Object.launch (~redacted/node_modules/playwright-core/lib/grid/dockerGridFactory.j  ✘  test.ts:9:1 › description


  1) test.ts:9:1 › description =====

    'Grid agent creation failed'


  1 failed
    test.ts:9:1 › description ======
```

## After: No exact match found 

```
Using config at ~redacted/playwright.config.ts
Error:
╔════════════════════════════════════════════════════════════════════════════╗
║ Failed to find mcr.microsoft.com/playwright:v1.16.3-focal docker image.    ║
║                                                                            ║
║ Available images:                                                          ║
║ - mcr.microsoft.com/playwright:v1.16.3                                     ║
║ - mcr.microsoft.com/playwright:v1.16.2-focal                               ║
║                                                                            ║
║ Use available images via PWTEST_IMAGE_NAME environment variable:           ║
║     PWTEST_IMAGE_NAME=mcr.microsoft.com/playwright:v1.16.3 playwright test ║
║                                                                            ║
║ Alternatively, please pull docker image with the following command:        ║
║                                                                            ║
║     npx playwright install docker-image                                    ║
║                                                                            ║
║ <3 Playwright Team                                                         ║
╚════════════════════════════════════════════════════════════════════════════╝
    at launchDockerGridAgent (~redacted/node_modules/playwright-core/lib/grid/dockerGridFactory.js:92:11)
    at processTicksAndRejections (node:internal/process/task_queues:96:5)
    at Object.launch (~redacted/node_modules/playwright-core/lib/grid/dockerGridFactory.js:43:9)
    at GridServer.createAgent (~redacted/node_modules/playwright-core/lib/grid/gridServer.js:356:5)
    at launchDockerContainer (~redacted/node_modules/@playwright/test/lib/cli.js:259:3)
    at Runner._run (~redacted/node_modules/@playwright/test/lib/runner.js:236:98)

Running 1 test using 1 worker

     editor-editor-wysiwyg--editor-wysiwyg.vr.ts:9:1 › actual element matches expected element
Error:
╔════════════════════════════════════════════════════════════════════════════╗
║ Failed to find mcr.microsoft.com/playwright:v1.16.3-focal docker image.    ║
║                                                                            ║
║ Available images:                                                          ║
║ - mcr.microsoft.com/playwright:v1.16.3                                     ║
║ - mcr.microsoft.com/playwright:v1.16.2-focal                               ║
║                                                                            ║
║ Use available images via PWTEST_IMAGE_NAME environment variable:           ║
║     PWTEST_IMAGE_NAME=mcr.microsoft.com/playwright:v1.16.3 playwright test ║
║                                                                            ║
║ Alternatively, please pull docker image with the following command:        ║
║                                                                            ║
║     npx playwright install docker-image                                    ║
║                                                                            ║
║ <3 Playwright Team                                                         ║
╚════════════════════════════════════════════════════════════════════════════╝
    at launchDockerGridAgent (~redacted/node_modules/playwright-core/lib/grid/dockerGridFactory.js:92:11)
    at processTicksAndRejections (node:internal/process/task_queues:96:5)
    at Object.launch (~redacted/node_modules/playwright-core/lib/grid/dockerGridFactory.j  ✘  test.ts:9:1 › description


  1) test.ts:9:1 › description =====

    'Grid agent creation failed'


  1 failed
    test.ts:9:1 › description ======
```
2021-12-16 15:11:51 -08:00
Yury Semikhatsky 707befd6f7
fix(fetch): basic authentication without realm (#10979) 2021-12-16 13:40:52 -08:00
Yury Semikhatsky 921aa02ce4
feat(webkit): roll to r1588 (#10976) 2021-12-16 12:43:57 -08:00
Yury Semikhatsky 7c3629b72a
feat: export tagged pdf by default (#10915) 2021-12-16 11:46:02 -08:00
github-actions[bot] b606b5b8a0
feat(firefox): roll to r1311 (#10963)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2021-12-15 21:47:58 -08:00
Pavel Feldman 24ee6a8a1e
test: add screenshots to html tests (#10925) 2021-12-15 19:19:43 -08:00
Andrey Lushnikov d379097107
feat(firefox-beta): roll Firefox-beta to 1311 (#10961) 2021-12-15 18:26:35 -08:00
Andrey Lushnikov 2957b7b013
feat(firefox-beta): roll to r1310 (#10954) 2021-12-15 17:33:09 -08:00
Yury Semikhatsky fcccac0c08
fix(tracing): return early if no trace was produced (#10953)
This fixes [page/page-set-input-files.spec.ts](https://devops.aslushnikov.com/flakiness2.html#filter_spec=page%2Fpage-set-input-files.spec.ts&commits=50&test_parameter_filters=%5B%5B%22browserName%22%2C%5B%5B%22electron%22%2C%22exclude%22%5D%5D%5D%2C%5B%22platform%22%2C%5B%5B%22Android%22%2C%22exclude%22%5D%5D%5D%2C%5B%22video%22%2C%5B%5Btrue%2C%22exclude%22%5D%5D%5D%2C%5B%22trace%22%2C%5B%5Btrue%2C%22include%22%5D%5D%5D%5D&timestamp=1639590204582) failures.
2021-12-15 17:19:00 -08:00
Dmitry Gozman 192071d5bc
feat(test runner): save traces for beforeAll/afterAll hooks (#10950) 2021-12-15 16:06:10 -08:00
Yury Semikhatsky 230e0b7049
fix(wheel): throw on wheel access in mobile WebKit (#10946) 2021-12-15 11:57:28 -08:00
github-actions[bot] 0b86fbde90
feat(chromium): roll to r950899 (#10930)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Max Schmitt <max@schmitt.mx>
2021-12-15 11:23:01 -08:00
Dmitry Gozman 19b08332ce
feat(test runner): disable test timeout on page.pause() call (#10944) 2021-12-15 11:12:52 -08:00
Max Schmitt bfc6cc2701
chore: do not make HEAD request when opening remote traces (#10948) 2021-12-15 11:12:31 -08:00
Max Schmitt 4fd8a40129
chore: fix wrong aligned protocol YAML (#10947) 2021-12-15 11:12:13 -08:00
Dmitry Gozman 0d54afab9c
feat(test runner): show beforeAll/afterAll hooks similar to tests (#10923)
Reporters now get notified about hooks start/end/steps.
2021-12-15 10:39:49 -08:00
github-actions[bot] 8499d59bdc
feat(firefox-beta): roll to r1309 (#10926)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2021-12-14 23:27:23 -08:00
Pavel Feldman f579f9c806
chore: parse tsx tests (#10917) 2021-12-14 19:25:07 -08:00
Pavel Feldman 04e82ce71c
feat(api): make withText an option (#10922) 2021-12-14 15:37:31 -08:00
Dmitry Gozman 34b84841b0
chore(test runner): create TestResult instances lazily in dispatcher (#10921)
This prepares for beforeAll/afterAll hooks to be handled in the same way.
Since we do not know in advance whether a hook will run, we must create
TestResults lazily.
2021-12-14 14:10:56 -08:00
Dmitry Gozman 5c4ebdce54
fix(line reporter): clarify about retries when going over total counter (#10901) 2021-12-13 19:06:13 -08:00
Pavel Feldman e55f96d466
test: add component tests for html report (#10900) 2021-12-13 18:30:48 -08:00
Max Schmitt 67b16497cc
chore: move setting PW User-Agent on connectOverCDP to the server side (#10899) 2021-12-13 17:20:04 -08:00
Pavel Feldman a82a3f1128
chore: move html report to package (#10898) 2021-12-13 16:38:26 -08:00
Joel Einbinder d8abb18c57
chore: allow private build-only packages (#10893) 2021-12-13 15:37:41 -08:00
Pavel Feldman f166c67707
chore: more html reporter components (#10896) 2021-12-13 15:37:01 -08:00
Yury Semikhatsky a2a8967bed
chore: create trace.zip in driver for local runs (#10868) 2021-12-13 14:40:29 -08:00
Dmitry Gozman 9491f6652d
fix(steps): do not show unnecessary steps for internal waitForEventInfo (#10889) 2021-12-13 13:32:53 -08:00
Joel Einbinder c27491cd4d
feat(test-runner): shorten long output paths (#10523) 2021-12-13 10:56:03 -08:00
Joel Einbinder 7a02c52144
feat(test-runner): specific playwright types for expect (#10670) 2021-12-13 13:42:36 -05:00
Dmitry Gozman 9f2a040241
fix(chromium): workaround enable-automation infobar (#10869) 2021-12-13 10:35:39 -08:00
Pavel Feldman 6521a6f3ab
chore: split html report into files (#10876) 2021-12-12 14:56:12 -08:00
musou1500 81ab6b3fde
fix(tracing): overwrite attr value specifies charset other than utf-8 (#10848) 2021-12-12 14:54:00 -08:00
Mateusz Burzyński 8b5e146b90
test(mouse): add a test for pointerdown event with custom button (#10697) 2021-12-12 10:01:45 -08:00
github-actions[bot] 105912e898
feat(firefox-beta): roll to r1308 (#10870)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2021-12-11 17:27:24 -08:00
Yury Semikhatsky aaa8b07770
chore(tracing): collect source names on server (#10862) 2021-12-10 14:07:22 -08:00
Ross Wollman fde427d890
feat(proxy): unify local network proxy behavior (#10719)
When configuring a proxy, Chromium requires a magic tokens to get some
local network requests to go through the proxy. This has tripped up a
few users, so we make the behavior default to the expected: proxy
everything including the local requests. This matches the other vendors
as well.

NB: This can be disabled via
`PLAYWRIGHT_DISABLE_FORCED_CHROMIUM_PROXIED_LOOPBACK=1`

Supercedes: #8345
Fixes: #10631
2021-12-10 14:01:56 -08:00
Max Schmitt 0b120c7f03
fix: use HTTP/2.0 instead of h2 as Response.httpVersion (#10812) 2021-12-10 11:24:52 -08:00
Dmitry Gozman 308c7b4e32
docs: update test advanced guides (#10861)
Linking to the API reference, using better examples and newer docs.
2021-12-10 11:15:01 -08:00
Yury Semikhatsky 976af162b0
feat(tracing): pack sources to trace on the driver side (#10815) 2021-12-09 17:21:17 -08:00
Dmitry Gozman a52c6219a7
fix(inspector): do not swallow keyup when not recording (#10842) 2021-12-09 17:15:38 -08:00
Dmitry Gozman 1d50db809d
fix(snapshot): render sandboxed iframes and svg iframes (#10835) 2021-12-09 17:10:31 -08:00
Yury Semikhatsky 4621f61c7d
docs: converting Locator to FrameLocator (#10839) 2021-12-09 15:21:04 -08:00
Dmitry Gozman 897e41c6c1
docs: document TestOptions.video.size (#10827) 2021-12-09 07:38:58 -08:00
Max Schmitt 43b7e6c26d
chore: allow CLI version override (#10814) 2021-12-08 23:32:21 -08:00
Pavel Feldman b5933db279
feat(tsconfig): respect baseUrl and paths from tsconfig (#10525) 2021-12-08 22:43:00 -08:00
Dmitry Gozman 4996e184bf
fix(electron): make recordVideo work (#10810) 2021-12-08 17:34:50 -08:00
Pavel Feldman c7193c7716
feat(trace): add a link to download trace (#10807) 2021-12-08 15:41:35 -08:00
Pavel Feldman 917924d279
docs: extract locators doc (#10795) 2021-12-08 09:54:01 -08:00
Pavel Feldman 4d683cef7f
fix(html): render text attachments as text (#10778) 2021-12-08 08:51:44 -08:00
github-actions[bot] 287a2eaee8
feat(webkit): roll to r1586 (#10775) 2021-12-08 07:52:25 -08:00
Max Schmitt 5ba7903ba0
devops: migrate from master to main branch (#10303) 2021-12-07 22:58:33 -08:00
Max Schmitt fdb633dc8b
fix: support regexp flags with locator.withText() (#10779) 2021-12-07 19:33:04 -08:00
Pavel Feldman a08a41f6c9
chore: render annotations in html report (#10774) 2021-12-07 18:35:06 -08:00
Pavel Feldman feb4c62da1
fix(html): html reporter fixes (#10770) 2021-12-07 16:47:47 -08:00
Max Schmitt 300a7f9b44
Revert "chore: validate client/server version match for remote connections (#10542)" (#10766)
This reverts commit 41070a2f55.
2021-12-07 14:45:05 -08:00
Pavel Feldman c9220801e7
feat(cli): add locator methods to the cli api (#10746) 2021-12-07 12:32:11 -08:00
Dmitry Gozman 6698f3277a
fix(traceViewer): calculate the number of filmstrip frames correctly (#10757)
We now fit evenly-spaced frames into available width (as intended before),
and then add one more last frame that could be cropped at the right.
2021-12-07 11:58:20 -08:00
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
Dmitry Gozman 4c93417e8a
fix(github reporter): handle global onError (#10256) 2021-11-11 13:25:38 -08:00
Max Schmitt 8fe3ea7972
chore: add trace viewer file upload error handling (#10243) 2021-11-11 21:31:19 +01:00
Yury Semikhatsky fbb3c88f3c
fix(fetch): smarter JSON.stringify for application/json requests (#10245) 2021-11-11 11:12:24 -08:00
Max Schmitt e3ba3eab11
chore: create-playwright #10221 follow-up (#10247) 2021-11-11 19:26:31 +01:00
Max Schmitt 3a64da7a54
fix: do not show taskkill.exe output (#10244) 2021-11-11 18:32:22 +01:00
Max Schmitt 6e5fe5cd89
chore: create-playwright enhancements (#10221) 2021-11-11 18:29:57 +01:00
Max Schmitt ac629afd46
chore: fix API name capitalisation with APIRequestContext (#10240) 2021-11-11 08:46:17 -08:00
Dmitry Gozman 9622704a8a
fix(test runner): update TestInfo.duration before running afterEach hooks (#10228) 2021-11-10 16:02:27 -08:00
Dmitry Gozman 9ec3e7cd52
fix(click): account for detached elements and iframe overlays (#10206) 2021-11-10 12:14:06 -08:00
Pavel Feldman 1e38ec5fa4
docs(element-handle): discourage the element handle use (#10220) 2021-11-10 11:30:25 -08:00
Pavel Feldman 03fee2f593
feat(trace-viewer): add metainfo tab (#10205) 2021-11-09 22:13:51 -08:00
Andrey Lushnikov b2af576796
chore: cut v1.17 (#10203) 2021-11-09 17:56:26 -08:00
github-actions[bot] c8b65ac677
feat(webkit): roll to r1576 (#10199)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2021-11-09 15:54:59 -08:00
Pavel Feldman 0d0f1690cd
fix(trace-viewer): do not rely upon request mode, it is inconsistent (#10198) 2021-11-09 15:12:37 -08:00
Dmitry Gozman 75efeb1e08
fix: resolve ip using grid/api/testsession endpoint (#10196)
For Selenium 4, we use se:cdp ws proxy, pointing it to the hub url.
For Selenium 3, we use grid api to try and get the target node ip.
2021-11-09 14:41:13 -08:00
Pavel Feldman 4e90eb9406
api(frame-locator): allow nth, first, last (#10195) 2021-11-09 14:14:20 -08:00
Max Schmitt d25b0f70bc
chore: api testing test nits (#10180) 2021-11-09 14:11:42 -08:00
Yury Semikhatsky c30447216d
docs(fetch): typo in comment (#10160) 2021-11-09 14:00:58 -08:00
Andrey Lushnikov d34f9972ab
feat: proper launch doctor for WebKit on Arm64 Ubuntu 20.04 (#10172)
This patch:
- consolidates all distribution-specific information in a single
  location
- updates list of required dependencies for WebKit on Arb64 Ubuntu 20.04
2021-11-09 10:55:13 -08:00
Pavel Feldman 3743fe1ef5
feat(trace-viewer): make upload button nice, add disclaimer (#10163) 2021-11-09 07:40:21 -08:00
github-actions[bot] 5b604acedb
feat(chromium): roll to r939194 (#10165)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Andrey Lushnikov <aslushnikov@gmail.com>
2021-11-08 20:05:39 -08:00
Pavel Feldman 806b5706a5
fix(trace-viewer): redirect, time and missing snapshot bugfixes (#10055) 2021-11-08 18:03:10 -08:00
Pavel Feldman 7b64161a37
feat(test-runner): allow specifying fine-grained trace options (#10147) 2021-11-08 15:39:58 -08:00
Andrey Lushnikov 8582a19e6b
fix(trace): non-negative time in call tab (#10153)
Fixes #10129
2021-11-08 15:30:36 -08:00
Dmitry Gozman 3cc839e013
fix(route): catch all Route methods when page closes (#10140)
This fixes a common scenario where you setup a route,
and the page closes (e.g. test ends) while we are aborting/continuing
some requests that are not instrumental to the test itself.
2021-11-08 15:13:15 -08:00
Andrey Lushnikov 4b14c466d4
feat: download webkit arm64 build for ubuntu 20.04 (#10151) 2021-11-08 14:56:08 -08:00
Joel Einbinder 0cad0de3e3
fix(test runner): better error message when importing typescript from esmodule (#10061) 2021-11-08 16:25:40 -05:00
Dmitry Gozman 0a104bc500
docs: clarify that slow tests are about files (#10134) 2021-11-08 12:54:18 -08:00
Pavel Feldman 4553d76fce
api(frame-locator): introduce frame locators (#10102) 2021-11-08 09:58:24 -08:00
github-actions[bot] cc72299cbc
feat(chromium): roll to r938553 (#10112)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2021-11-07 17:50:03 +01:00
github-actions[bot] cf57f72c59
feat(firefox): roll to r1304 (#10106)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2021-11-06 12:12:09 -07:00
Andrey Lushnikov 51a7567907
codegen: use import instead of require for codegen tests (#10104) 2021-11-05 19:01:54 -07:00
Dmitry Gozman 61ff52704c
feat(input): perform hit target check during input (#9546)
This replaces previous `checkHitTarget` heuristic that took place before the action
with a new `setupHitTargetInterceptor` that works during the action:
- Before the action we set up capturing listeners on the window.
- During the action we ensure that event target is the element we expect to interact with.
- After the action we clear the listeners.

This should catch the "layout shift" issues where things move
between action point calculation and the actual action.

Possible issues:
- **Risk:** `{ trial: true }` might dispatch move events like `mousemove` or `pointerout`,
because we do actually move the mouse but prevent all other events.
- **Timing**: The timing of "hit target check" has moved, so this may affect different web pages
in different ways, for example expose more races. In this case, we should retry the click as before.
- **No risk**: There is still a possibility of mis-targeting with iframes shifting around,
because we only intercept in the target frame. This behavior does not change.

There is an opt-out environment variable PLAYWRIGHT_NO_LAYOUT_SHIFT_CHECK that reverts to previous behavior.
2021-11-05 17:31:28 -07:00
Andrey Lushnikov 8bf8f49746
feat: support Firefox for Ubuntu 20.04 arm64 download (#10100) 2021-11-05 17:02:48 -07:00
Pavel Feldman f3fd3ebc37
chore(frame-selector): add more tests, use frame logic in element handle (#10097) 2021-11-05 16:36:01 -07:00
github-actions[bot] d336f18166
feat(firefox-beta): roll to r1303 (#10065)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2021-11-05 12:33:20 -07:00
Pavel Feldman f19864890f
feat(iframe): make iframe selectors work w/ element handles (#10063) 2021-11-05 11:06:04 -07:00
Max Schmitt 84d2ee3929
chore: fix connectOverCDP on Windows when proxy is used (#10080) 2021-11-05 17:38:13 +01:00
Max Schmitt 95a5c5cb79
chore(create-playwright): make it Node.js 12 compatible (#10081) 2021-11-05 17:30:18 +01:00
Max Schmitt c5b19351f6
chore: rename Fetch Request/Response to API (#10087) 2021-11-05 16:27:49 +01:00
Max Schmitt ceedf45d4a
fix: support .mjs files with Playwright Inspector (#10043) 2021-11-05 12:28:52 +01:00
Dmitry Gozman 3c1aaa5338
fix(trace): do not call tracing.stopChunk() twice (#10054) 2021-11-04 21:08:42 -07:00
github-actions[bot] 8a6e4bd350
feat(firefox): roll to r1302 (#10062)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Andrey Lushnikov <aslushnikov@gmail.com>
2021-11-04 16:12:59 -07:00
github-actions[bot] c6e0ecc38c
feat(firefox): roll to r1301 (#10058)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2021-11-04 14:50:36 -07:00
Pavel Feldman 78e99249a3
feat(frame-selector): intial implementation (#10018) 2021-11-04 13:28:35 -07:00
github-actions[bot] 9b4d9460eb
feat(chromium): roll to r936784 (#9986) 2021-11-04 12:35:31 -07:00
github-actions[bot] a1f5131501
feat(webkit): roll to r1572 (#10030)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2021-11-04 12:07:03 +01:00
Andrey Lushnikov 16b9ada8c0
chore: add playwright-report to gitignore created by scaffolding (#10028)
Co-authored-by: Max Schmitt <max@schmitt.mx>
2021-11-03 17:12:52 -07:00
Yury Semikhatsky bce9a8187d
fix(fetch): post data for delete request (#10019) 2021-11-03 13:26:15 -07:00
Dmitry Gozman 3120f81629
fix(reporters): move Running X tests using Y workers to reporters (#10014) 2021-11-03 11:17:23 -07:00
Dmitry Gozman c373986ca0
fix(evaluate): reject all context operations when frame detaches (#9987) 2021-11-03 10:44:50 -07:00
Pavel Feldman 2ae2136810
chore: do not carry selector next to parsed selector (#10004) 2021-11-03 08:35:01 -07:00
Dmitry Gozman 9cebe60831
feat(reporters): augment non-stdio reporters with dot/line (#10003) 2021-11-03 08:25:16 -07:00
Andrey Lushnikov 2e1dcaf2ee
chore: fix race in grid server (#9999) 2021-11-02 18:01:15 -07:00
Yury Semikhatsky 5abb5d74ea
chore: delete legacy response interception code (#9995) 2021-11-02 17:48:38 -07:00
Pavel Feldman cd47bf26e8
feat(trace-viewer): render snapshot urls (#9993) 2021-11-02 17:35:23 -07:00
Andrey Lushnikov 009478b8d5
feat: download Chromium Linux arm64 builds (#9994) 2021-11-02 16:58:22 -07:00
Andrey Lushnikov 3e96dcd82a
chore: bail out stable installation when running on Linux Arm64 (#9991)
Stable browser channels are only shipped on x86
2021-11-02 16:01:30 -07:00
Pavel Feldman 81ea40bb00
feat(inspector): add the copy selector button (#9984) 2021-11-02 15:48:48 -07:00
Andrey Lushnikov 62a01a41c6
feat: various docker integration improvements (#9988)
- shorter docker terminal message
- terminate testrunner if docker cannot be found
- use `-docker` suffix for snapshots / screenshots.
2021-11-02 13:58:26 -07:00
Pavel Feldman 6a30c90590
feat(trace-viewer): render wall time for each action (#9982) 2021-11-02 12:16:12 -07:00
Max Schmitt bedb817a00
docs(test-runner): worker fixtures only in before/after-All (#9967) 2021-11-02 16:51:41 +01:00
Nick Partridge a51ac39275
feat: add snapshotDir to set base snapshot directory (#9260) 2021-11-02 08:02:49 -07:00
Andrey Lushnikov 92c9e9a079
chore: ignore grid version checks (#9969)
This is a preparation for docker dogfooding: since in our own repo,
we run tip-of-tree tests against stable @playwright/test, we have
different versions for Playwright and Grid.

In our case, these versions should always be close-enough, so we
can disregard safety version checks for our usecase.
2021-11-02 04:11:34 -07:00
github-actions[bot] 9b57f0ceb5
feat(firefox-beta): roll to r1302 (#9955)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2021-11-02 02:49:18 -07:00
github-actions[bot] d12457ca3c
feat(firefox): roll to r1300 (#9958)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2021-11-02 02:48:58 -07:00
github-actions[bot] 87174e9ed7
feat(webkit): roll to r1570 (#9954)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2021-11-02 09:32:00 +01:00
Pavel Feldman 56ca3a18f5
feat(trace-viewer): show test name (#9957) 2021-11-01 21:23:35 -07:00
Pavel Feldman 3673776330
Revert "chore(test-runner): use test name as trace file name prefix (#9619)" (#9956)
This reverts commit 3c420a7cf1.
2021-11-01 20:27:41 -07:00
Pavel Feldman 85497c5509
feat(tracing): allow including source files in traces (#9946) 2021-11-01 19:57:29 -07:00
Andrey Lushnikov d1b43fafd3
fix: a nicer lockfile message (#9952)
Fixes #9574
2021-11-01 17:48:18 -07:00
Yury Semikhatsky 13cc266b37
feat: add "commit" to possible waitUntil options (#9892) 2021-11-01 17:12:19 -07:00
Pavel Feldman 0221f1a4e0
fix(html): fix the mobile layout (#9945) 2021-11-01 16:47:07 -07:00
Dmitry Gozman 9cfbc0c171
chore(expect): simplify expect array edge cases (#9942) 2021-11-01 16:42:13 -07:00
Pavel Feldman 2bfbf65b8d
fix(html): strip ansi escaping from stdio (#9944) 2021-11-01 16:39:54 -07:00
github-actions[bot] 5d49c41a52
feat(firefox): roll to r1299 (#9932)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Max Schmitt <max@schmitt.mx>
2021-11-02 00:23:16 +01:00
github-actions[bot] 0495ce1ceb
feat(firefox-beta): roll to r1301 (#9935)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2021-11-02 00:22:59 +01:00
Pavel Feldman 9ac8829583
feat(html): bake report zip into the html report, allow opening from fs (#9939) 2021-11-01 16:14:52 -07:00
Dmitry Gozman 4e52b64619
chore: simplify polls and evaluates in dom.ts (#9941) 2021-11-01 15:59:47 -07:00
Max Schmitt a2c414cd88
chore: add Microsoft Edge Stable on Linux (#9915) 2021-11-01 22:03:51 +01:00
Dmitry Gozman 50f7477906
chore: use progress.continuePolling instead of passing it around (#9929) 2021-11-01 13:57:13 -07:00
Pavel Feldman d234030b9a
feat(html): allow projects with spaces, lax filter matching (#9913) 2021-11-01 10:53:58 -07:00
Pavel Feldman d79aae633c
feat(html): render the suite name before test title (#9909) 2021-11-01 10:53:42 -07:00
Dmitry Gozman 4f1027bdd0
feat(test runner): introduce TestInfo.parallelIndex (#9762)
This is a worker number between `0` and `workers - 1` that
does not change after worker process restart.
2021-11-01 10:37:34 -07:00
Darío Kondratiuk 498894280b
docs(page): Document Page.reload (#9926) 2021-11-01 18:27:03 +01:00
Max Schmitt 3c420a7cf1
chore(test-runner): use test name as trace file name prefix (#9619) 2021-11-01 18:15:19 +01:00
Dmitry Gozman 13844a5b0a
feat(html reporter): open test details page when running a single test (#9910) 2021-11-01 09:54:53 -07:00
Pavel Feldman 1f907f0cfc
feat(html): render warning message when served off file:// (#9908) 2021-10-31 17:36:05 -07:00
Pavel Feldman d6adff7792
fix(html): include html into the reporter types (#9907) 2021-10-31 11:06:28 -07:00
Dmitry Gozman 4ff69529d4
chore: detect document open for inspector (#9901)
To be used later for other global event listeners.
2021-10-30 16:06:52 -07:00
Pavel Feldman bd505ed07c
fix(tracing): fall back to protocol naming in ports w/o apiName (#9896) 2021-10-30 12:26:38 -07:00
Dmitry Gozman b244f035bc
chore: small cleanups around actions (#9895) 2021-10-29 22:27:57 -07:00
Pavel Feldman 94c33da946
feat(trace): throttle the screencast (#9893) 2021-10-29 18:20:17 -07:00
Pavel Feldman 8991bbde33
feat(html): live filtering, opt-out from auto-open (#9889) 2021-10-29 16:24:08 -07:00
Dmitry Gozman 49337890d2
docs: improve documentation for assertions and test config (#9890) 2021-10-29 15:25:52 -07:00
Max Schmitt bff84c5391
fix: PowerShell execution policies (#9885) 2021-10-29 22:42:51 +02:00
Dmitry Gozman 227e3da62f
fix(test runner): do not reuse worker that did not teardown scopes (#9872)
Two bug fixes:
- Do not use the worker that is being shutdown for a new job.
- Report unhandled errors during "expected to fail" tests as
  fatal errors.
2021-10-29 13:36:12 -07:00
Max Schmitt dd1d3c3ed9 Revert "chore: migrate away from ps1 in install-deps on Windows (#9876)"
This reverts commit 59a406a586.
2021-10-29 20:12:46 +02:00
Dmitry Gozman cea61691fa
fix(connectOverCDP): ensure cleanup when remote ws closes (#9873) 2021-10-29 10:35:24 -07:00
Max Schmitt 59a406a586
chore: migrate away from ps1 in install-deps on Windows (#9876) 2021-10-29 19:32:56 +02:00
Pavel Feldman 0566af86e1
feat(html): add filter field (#9874) 2021-10-29 09:39:34 -07:00
github-actions[bot] 05e303e9e0
feat(webkit): roll to r1568 (#9871)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2021-10-29 09:49:27 +02:00
Dmitry Gozman e8c512dbeb
fix(cleanup): use rimraf.sync on process exit (#9862)
Currently we call async `removeFolders` from a synchronous
`process.on('exit')` handler, which should not work.
2021-10-28 19:28:16 -07:00
Yury Semikhatsky 1886897e5c
fix(matchers): support builtin types (#9865) 2021-10-28 18:45:59 -07:00
Pavel Feldman 75ac579fac
fix(toHaveCount): another edge case fix (#9860) 2021-10-28 16:04:21 -07:00
Pavel Feldman 2e4722d460
test: migrate to upstream fixtures (#9835) 2021-10-28 08:31:30 -07:00
github-actions[bot] 9af5aaabbb
feat(firefox): roll to r1298 (#9848) 2021-10-28 07:41:58 -07:00
github-actions[bot] c2c61b0514
feat(firefox-beta): roll to r1300 (#9846)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2021-10-28 14:16:13 +02:00
Andrey Lushnikov f15ff0354b
fix: align default docker image download with the docker integration (#9842)
The docker image that we download should match the one we expect
while running tests in docker.
2021-10-28 02:15:26 -07:00
github-actions[bot] 3a83172785
feat(firefox-beta): roll to r1299 (#9831)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2021-10-28 07:41:09 +02:00
Max Schmitt 0f54c2116b
chore(trace-viewer): add drag hover animation and be able to upload multiple times (#9792) 2021-10-28 07:38:22 +02:00
Pavel Feldman 16afb5064f
test: remove browserOptions (#9829) 2021-10-27 19:00:06 -07:00
github-actions[bot] 82609cd7bd
feat(webkit): roll to r1566 (#9828)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2021-10-28 00:12:32 +02:00
Max Schmitt fef5c38b3e
chore: remove Win/32bit from registry (#9790) 2021-10-27 23:48:17 +02:00
Dmitry Gozman 4743036bbe
fix: guard against undefined contexts (#9826)
We do not create contexts when we are unable to attribute them to a frame or they come from a stale oopif.
Async hop in the binding method can also cause the context to be destroyed already.

Reproduced with codegen.
2021-10-27 13:28:52 -07:00
Max Schmitt be64b5f6e2
chore: add missing dynamic sdkLanguage based CLI invocations (#9817) 2021-10-27 18:58:13 +02:00
Pavel Feldman 31faa7d9a7
chore: sort out base fixtures (#9809) 2021-10-27 08:28:53 -07:00
github-actions[bot] 1c88079755
feat(chromium): roll to r934379 (#9793)
Co-authored-by: Max Schmitt <max@schmitt.mx>
2021-10-27 12:39:57 +02:00
Yury Semikhatsky dd0dae623b
fix(fetch): ignoreHTTPSErrors after redirects (#9806) 2021-10-26 23:20:52 -07:00
Joel Einbinder c8addef03a
fix(monorepo): export package.json from every package (#9803) 2021-10-26 18:41:18 -04:00
Dmitry Gozman fac5da9517
docs: update console event snippet (#9800)
This avoids the confusion where arguments are printed
asynchronously, interleaved with other console messages.
2021-10-26 14:40:28 -07:00
Dmitry Gozman 22e4a0d580
fix(snapshots): --update-snapshots + retries should work (#9799) 2021-10-26 13:50:16 -07:00
Pavel Feldman 273122b761
chore: align internal test harness w/ @playwright/test (#9796) 2021-10-26 13:45:53 -07:00
Pavel Feldman 87c64b2c1c
chore: align client side instrumentations (#9771) 2021-10-26 11:13:35 -07:00
Pavel Feldman 5451808df1
chore: append sources to traces (#9736) 2021-10-25 18:56:57 -07:00
Dmitry Gozman 13ed1dee50
fix(test runner): do not mask uncaught error in beforeEach (#9764) 2021-10-25 14:17:27 -07:00
Pavel Feldman 2d4db7a6f0
fix(stack): hide test runner stack frames (#9735) 2021-10-25 11:49:59 -07:00
Dmitry Gozman 7527ad27d3
fix(snapshot): empty adopted stylesheet should not prevent node refs (#9731)
We never marked empty stylesheets as "stale", so we never computed
css text for them. This prevented node reuse, because empty string
is not equal to undefined.
2021-10-23 16:26:46 -07:00
Pavel Feldman f08c22b467
fix(trace-viewer): show source files in local version (#9732) 2021-10-23 11:23:39 -07:00
Pavel Feldman c890510d86
feat(traceviewer): show load progress (#9726) 2021-10-22 16:59:17 -07:00
Yury Semikhatsky d183d364a0
fix(fetch): remove content-length from redirected post requests (#9728) 2021-10-22 16:52:49 -07:00
Dmitry Gozman 23aa0be15b
docs: update afterEach docs with an example (#9727)
Also add a test for TestInfo.status in afterEach.
2021-10-22 16:32:22 -07:00
Pavel Feldman e2710451f3
fix(trace viewer): keep sw alive (#9725) 2021-10-22 15:14:58 -07:00
Joel Einbinder 940466f830
fix(npm): don't ship src in @playwright/test and ensure we ship cli.js in playwright-core 2021-10-22 16:15:57 -04:00
Joel Einbinder f2888395a6
fix: support even older node 12 (#9718) 2021-10-22 15:59:52 -04:00
Dmitry Gozman 193c79a685
feat(test runner): rewrite dispatcher to avoid unneded stalls (#9629)
In some circumstances, dispatcher was waiting for all exisitng jobs
to finish before scheduling a new one. This leads to unneded stalls.
Instead, we can schedule jobs right away, if we have a worker
available.
2021-10-22 11:10:37 -07:00
Max Schmitt e17dbe8d01
chore: pin expect package (#9713) 2021-10-22 08:07:33 -07:00
Pavel Feldman d1ae6fdfdd
feat(trace): add drop trace here label (#9698) 2021-10-22 08:00:34 -07:00
Max Schmitt 60939a91b2
devops: release create-playwright over publish infra (#9683) 2021-10-22 10:13:49 +02:00
Max Schmitt 94d1fcf835
chore: move create-playwright build to build.js infra (#9687)
Co-authored-by: Joel Einbinder <joel.einbinder@gmail.com>
2021-10-22 10:13:05 +02:00
Pavel Feldman ea7a294924
fix(trace-viewer): restore dragndrop (#9697) 2021-10-21 22:06:24 -07:00
Pavel Feldman 6a3e08d1ac
fix(reporter): fix locator stacks to hide internal detail (#9693) 2021-10-21 16:10:47 -07:00
Pavel Feldman 299dffbdb3
fix(expect): fix toHaveCount(0) (#9690) 2021-10-21 14:46:54 -07:00
Max Schmitt da464cfe0c
chore(create-playwright): fix CI (#9685) 2021-10-21 21:06:28 +02:00
Pavel Feldman c21d6b791c
chore: fix the route(times) to disable interception (#9671) 2021-10-21 11:23:49 -07:00
Max Schmitt dd5364e445
feat(create-playwright): add option to add examples (#8963) 2021-10-21 20:21:50 +02:00
Pavel Feldman f853176df3
fix(html): allow serving html report w/ traces off relative path (#9668)
Fixes #9652
2021-10-20 17:52:13 -07:00
Andrey Lushnikov 962525b592
fix(trace-viewer): do not show negative time in action duration (#9669) 2021-10-20 17:26:35 -07:00
Andrey Lushnikov a9bf96e1bd
fix(trace-viewer): fix action icons to be always visible (#9666) 2021-10-20 14:44:32 -07:00
Pavel Feldman 225145fc3e
fix(expect): do not fail on navigated frames while polling (#9659) 2021-10-20 13:01:05 -07:00
Pavel Feldman b6a9a8a34a
Revert "chore: print global errors when running html report (#9657)" (#9661)
This reverts commit 68c9fce507.
2021-10-20 12:51:12 -07:00
Andrey Lushnikov 6b1767efbb
chore: cut v1.16.0 branch (#9656) 2021-10-20 12:44:32 -07:00
Pavel Feldman 68c9fce507
chore: print global errors when running html report (#9657) 2021-10-20 11:57:21 -07:00
Pavel Feldman b3b5497578
chore(html): allow serving from a subfolder (#9653) 2021-10-20 10:35:49 -07:00
Dmitry Gozman fb421e0a65
feat(github reporter): update docs, strip ansi escapes (#9640) 2021-10-20 07:56:03 -07:00
Pavel Feldman 4423de9996
chore: speed up snippet generation 50 times (#9638) 2021-10-19 21:10:14 -07:00
Andrey Lushnikov 983cfde4d4
feat: introduce docker integration for Playwright Test (#9599) 2021-10-19 16:10:24 -07:00
Pavel Feldman ba57be99a9
fix(infobar): account for infobar in headed mode (#9627) 2021-10-19 15:36:17 -07:00
Pavel Feldman 9d03a85c30
chore: make web-first matchers work outside of pw tests (#9624) 2021-10-19 14:46:56 -07:00
Andrey Lushnikov c5359ff6c5
feat: introduce npx playwright install docker-image command (#9597)
This command pulls matching docker image for Playwright.
2021-10-19 12:30:32 -07:00
Joel Einbinder adb5aa4544
fix(monorepo): support yarn2/pnp by specifying all deps and bins (#9620) 2021-10-19 14:49:47 -04:00
Yury Semikhatsky 7e52357178
docs(fetch): ApiResponse -> APIResponse (#9623) 2021-10-19 11:17:23 -07:00
Yury Semikhatsky ade2171c4b
fix(docs): APIRequest* variable names (#9621) 2021-10-19 09:37:17 -07:00
Joel Einbinder 53c866c0f2
fix(monorepo): explicitly list package.json exports instead of using glob patterns (#9584) 2021-10-19 12:28:02 -04:00
Dmitry Gozman 6d554a5e30
feat(reporter): expose more apis (#9603) 2021-10-19 08:38:04 -07:00
Yury Semikhatsky 6d727401bf
chore(fetch): rename ApiRequest* to APIRequest* (#9606) 2021-10-19 07:38:27 -07:00
Pavel Feldman 56d8481b87
chore: render large trace link (#9608) 2021-10-19 00:36:21 -07:00
Pavel Feldman bccd4c8906
feat(api): expose step location UI (#9605) 2021-10-18 22:14:01 -07:00
Pavel Feldman c06a6e1f63
fix(html): always highlight error code (#9604) 2021-10-18 21:37:19 -07:00
Pavel Feldman e37660b068
feat(api): expose step location (#9602) 2021-10-18 21:06:18 -07:00
Dmitry Gozman 4977edcaf3
fix(tracing): fix inconsistent calls of tracing.{start,stop} in fixtures (#9594)
Drive-by: fix error logging.
2021-10-18 21:05:59 -07:00
Yury Semikhatsky 4f7d53ac66
fix(fetch): abort requests when context is disposed (#9601) 2021-10-18 19:41:56 -07:00
Pavel Feldman ff16ac0351
chore(html): html report polish (#9600) 2021-10-18 18:33:38 -07:00
Pavel Feldman bc0895ea6c
chore(html): use primer colors for report (#9596) 2021-10-18 14:12:56 -07:00
Pavel Feldman 99a2bd604d
chore: minor UI updates (#9590) 2021-10-18 13:34:02 -07:00
Yury Semikhatsky 909b039b9a
docs: note that setViewportSize changes screen size (#9588) 2021-10-18 13:01:04 -07:00
Yury Semikhatsky fd81982c33
fix(selectors): combine visible with other selectors (#9585) 2021-10-18 10:47:37 -07:00
Pavel Feldman f6a768b67b
chore: remove codicon from html report (#9583) 2021-10-18 09:30:23 -07:00
Pavel Feldman 432fb453e4
chore(html): only copy trace viewer for reports with traces (#9579) 2021-10-18 08:03:04 -07:00
Pavel Feldman 6afa85927e
chore(ui): redesign html report a bit (#9577) 2021-10-17 20:58:06 -07:00
github-actions[bot] f83199fb4a
feat(firefox): roll to r1297 (#9564)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2021-10-16 12:39:10 +02:00
Paul Biggar e473fc6a10
docs(test-runner): afterEach JSDoc description typo (#9542) 2021-10-16 12:36:07 +02:00
Feng Yu 0160c18f7a
docs: fix typo retried (#9562) 2021-10-15 19:24:03 -07:00
Pavel Feldman 99f3389b3b
feat(html): automatically use console reporter with html (#9559) 2021-10-15 19:18:56 -07:00
Yury Semikhatsky 3e054e9ad6
feat(webkit): bump to r1564 (#9557) 2021-10-15 17:22:41 -07:00
Yury Semikhatsky a186278f2e
fix(selectors): empty text matcher (#9548) 2021-10-15 17:00:45 -07:00
Pavel Feldman 811d02dbe8
feat(trace): add web manifest (#9482) 2021-10-15 16:33:09 -07:00
Pavel Feldman 9135847950
feat(ui): merge stdio in html report (#9560) 2021-10-15 16:15:06 -07:00
Pavel Feldman e31b96cc26
feat(tracing): make context.request appear in the trace (#9555) 2021-10-15 15:22:49 -07:00
Dmitry Gozman 4ce765c3ae
feat(trace): highlight targets for accessors and expects (#9527) 2021-10-15 15:07:15 -07:00
Max Schmitt 2d3d733af7
chore(codegen): use offsetX instead of clientX for positioned clicks (#9521) 2021-10-15 22:21:19 +02:00
Yury Semikhatsky 235cd10a43
fix(runner): clarify where test.use() can be called (#9486) 2021-10-15 12:03:26 -07:00
Andrey Lushnikov 7a187d9994
feat: support socks proxy in Fetch API (#9545) 2021-10-15 11:33:21 -07:00
Dmitry Gozman b383c6bf3c
fix: separate Selectors instance per Playwright object (#9529)
We used to share selectors for inprocess, remote and any internal playwright objects.
2021-10-15 09:21:56 -07:00
Pavel Feldman 458945821f
doc(html): document html reporter (#9528) 2021-10-15 08:15:30 -07:00
Max Schmitt 9031c4d2e4
chore(create-playwright): nits and cleanups (#9537) 2021-10-15 16:39:12 +02:00
Pavel Feldman 5ea4ec2f7a
feat(html): open show html report when there are failures (#9526) 2021-10-14 21:09:41 -07:00
Dmitry Gozman 7a68f2f661
chore: merge Connection.{close,didDisconnect} (#9524)
This simplifes cleanup logic.
Also markAsRemote() in gridClient.
2021-10-14 20:58:09 -07:00
Yury Semikhatsky 4680ef46de
docs: clarify default retry behavior (#9525) 2021-10-14 19:28:47 -07:00
Dmitry Gozman c711fb35ad
fix(expect): do not rely on displayName (#9523)
Support for displayName was removed in Node 16.
Switching to Function.name instead.

Relevant V8 change: https://chromium-review.googlesource.com/c/v8/v8/+/2692189
2021-10-14 19:23:45 -07:00
Pavel Feldman 7ee48febf9
chore: html report ui fixes (#9522) 2021-10-14 18:54:33 -07:00
Pavel Feldman 75cfe5d1f5
chore: start adding html runner e2e tests (#9518) 2021-10-14 15:48:05 -07:00
Maximilian Hils 84a70eae2f
Create userDataDir if it does not exist (#9483) 2021-10-14 11:19:52 -07:00
Pavel Feldman 584014f6fa
feat(html): unhide html reporter (#9512) 2021-10-14 11:17:35 -07:00
Dmitry Gozman 9dd17773e6
feat: mark PlaywrightClient's connection as remote (#9477)
This makes artifacts work as expected for all remote scenarios.
2021-10-14 10:41:03 -07:00
Dmitry Gozman bb013d14c0
docs: minor changes in apirequest (#9507) 2021-10-14 09:48:53 -07:00
Max Schmitt 96be17463e
feat(codgen): support positioned clicks in a canvas (#9503) 2021-10-14 17:37:29 +02:00
Max Schmitt d851f4d58b
Reland chore: update to webpack v5.58.2 (#9498)
* Revert "Revert "chore: update to webpack v5.58.2 (#9479)" (#9489)"

This reverts commit e5a3c9b907.

* Fix icons
2021-10-14 17:36:59 +02:00
Max Schmitt 1c7a7fcf23
fix: electron launcher (#9504)
Broken-since: #9446
2021-10-14 16:45:52 +02:00
Joel Einbinder c8f875a193
chore: move test runner types into the playwright test package (#9472)
Co-authored-by: Max Schmitt <max@schmitt.mx>
2021-10-14 11:55:08 +02:00
Andrey Lushnikov 4fa6d1e723
feat(firefox): roll to r1296 (#9494) 2021-10-14 11:35:39 +02:00
Pavel Feldman bb77912aee
chore: don't include babel compiled files in webpack bundles (#9491) 2021-10-13 19:27:50 -07:00
github-actions[bot] c054d19a5d
feat(webkit): roll to r1562 (#9476)
Co-authored-by: Max Schmitt <max@schmitt.mx>
2021-10-14 02:00:25 +02:00
Joel Einbinder 9d3513ab13
chore(create-playwright): some nits (#9133) 2021-10-13 17:33:44 -04:00
github-actions[bot] a885e95646
feat(firefox-beta): roll to r1293 (#9456) 2021-10-13 14:32:35 -07:00
Yury Semikhatsky e827bde1c2
fix(runner): skip global hooks in --list mode (#9480) 2021-10-13 14:18:15 -07:00
Joel Einbinder 2a0a44bc09
chore: move diff_match_patch into the test package (#9475) 2021-10-13 13:38:26 -07:00
Pavel Feldman cd99ad0da2
feat(trace): allow multiple traces in a single app, gc traces (#9478) 2021-10-13 13:31:54 -07:00
Pavel Feldman 8b1a887756
feat(html): link traces from html report (#9473) 2021-10-13 11:07:29 -07:00
Dmitry Gozman 64a3099655
chore(expect): simplify expect implementation (#9459) 2021-10-13 08:56:57 -07:00
Pavel Feldman cdfe075b2a
chore(traceviewer): drop intermediate iframe, add drop handler (#9455) 2021-10-12 21:21:06 -07:00
Pavel Feldman c0945d9d00
chore(trace): make trace viewer a pwa (#9438) 2021-10-12 14:42:50 -07:00
Max Schmitt bcfd47343c chore: fix package description after monorepo 2021-10-12 23:32:08 +02:00
Max Schmitt 34e933f474
fix(trace-viewer): show warning when opening an empty trace (#9449) 2021-10-12 20:11:57 +02:00
Yury Semikhatsky 82ff85b106
fix(matchers): make isNot required in protocol (#9436) 2021-10-12 09:01:46 -07:00
Max Schmitt ded1e718b5
types(test-runner): fix access worker fixtures in test.skip (#9447) 2021-10-12 17:44:00 +02:00
Max Schmitt 2210426a6b
chore(electron): show helpful error when no x11 server is available (#9446) 2021-10-12 17:42:39 +02:00
Pavel Feldman 9dfc0a3394
chore: make sw global in trace viewer (#9431) 2021-10-11 20:52:28 -07:00
Pavel Feldman 876e08315b
fix(expect): continue polling in array-based matchers, fix edge cases (#9430) 2021-10-11 14:01:09 -07:00
Max Schmitt b1160ec239
chore(test-runner): make outputDir based on cwd instead of testDir (#9360) 2021-10-11 22:24:46 +02:00
Joel Einbinder d34b53a0d7
feat(test runner): allow comparing binary files to strings (#9315)
Co-authored-by: Max Schmitt <max@schmitt.mx>
2021-10-11 21:57:59 +02:00
Max Schmitt f0ff2a23d2
chore: add README's for packages (#9432) 2021-10-11 19:28:10 +02:00
Max Schmitt 9dd6bb8c6a Revert "feat(test-runner): allow parametrized tests that don't extend base (#9301)"
This reverts commit f63af830de.
2021-10-11 17:32:31 +02:00
github-actions[bot] 9e0ee0e37e
feat(chromium): roll to r930007 (#9428)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2021-10-11 17:02:46 +02:00
Joel Einbinder c89d5a50dd
chore: migrate to monorepo (#9421) 2021-10-11 16:52:17 +02:00
Max Schmitt 8bfd63e4ba
chore(create-playwright): have better config defaults (#9362) 2021-10-07 21:21:56 +02:00
Yevhen Laichenkov 19715300b3
fix(create-playwright): add extra -- for the debug script (#9257)
Co-authored-by: Max Schmitt <max@schmitt.mx>
2021-10-04 10:55:29 +02:00
Max Schmitt cd22072685
chore: enable object-curly-spacing in ESLint (#9168) 2021-09-27 18:58:08 +02:00
Max Schmitt c66d72bddb chore(create-playwright): upload alwas test-results/ to GHA
Fixes #9014
2021-09-22 16:41:44 +02:00
Max Schmitt 08544a88a1 chore(create-playwright): cut v0.1.7 release 2021-09-20 09:22:00 +02:00
Max Schmitt f68ae4a2e0
chore(create-playwright): enhance UX follow-ups and add more verbose Playwright Test config (#8942) 2021-09-15 22:07:50 +02:00
Max Schmitt 299a55c562
chore(create-playwright): UX follow-ups (#8897) 2021-09-14 13:14:43 +02:00
Max Schmitt 87c2b4b200
chore(create-playwright): roll to 0.1.5 (#8889) 2021-09-13 22:48:19 +02:00
Max Schmitt 5eca7aa1d9
feat: add create-playwright package (#8841) 2021-09-13 22:05:38 +02:00
Yury Semikhatsky 210ad72228
fix: remove node-fetch dependency, use custom fetch implementation (#8486) 2021-08-26 16:18:54 -07:00
Dmitry Gozman 33852635b7
fix(fetch): skip tests on non-default modes, add node-fetch to deps list (#8425) 2021-08-24 19:41:29 -07:00
Dmitry Gozman 2ac0c59156
feat(test-runner): rename Test to TestCase (#7725) 2021-07-19 14:54:18 -07:00
Dmitry Gozman 167db03f05
feat(test-runner): export reporter api as @playwright/test/reporter (#7692) 2021-07-16 21:15:03 -07:00
Dmitry Gozman 47885db116
chore: move install to Registry (#7433)
This is an effort to consolidate all handling of browser binaries in a single place.
2021-07-06 20:59:16 -07:00
Joel Einbinder 7629587914
fix(test-runner): work with .mjs files (#7373) 2021-06-29 15:28:41 -07:00
Joel Einbinder 0af1f4399d
fix(test-runner): fix default export breaking on installation tests (#7331) 2021-06-25 22:52:04 -07:00
Joel Einbinder 7caf05b24a
fix(playwright-test): have the proper default export (#7328)
There are 3 ways to import `@playwright/test` library in the modern Node.js ecosystem:
- Using `require`: works great, this patch doesn't change it
- Using `import` statement from `.mjs` file - we have wrong `default` for @playwright/test that should be a `test`. This is what test checks for
- Using `import test from '@playwright/test'` from `.ts` file - was broken because TypeScript thought it's a CJS module, whereas it's a ESM module in reality.

Also, typescript types import from `.d.ts` file was broken because we had no default export (`export *` syntax does not export default).
2021-06-25 15:29:22 -07:00
Pavel Feldman deec8a4adb
docs: make docs test-first (#7214) 2021-06-18 10:09:38 -07:00
Dmitry Gozman b625a04adc
types: move exported objects from index.d.ts to overrides.d.ts (#7152)
This way we generate these types right away, without duplicating them everywhere.
2021-06-15 15:06:18 -07:00
Andrey Lushnikov afa9d69b63
test: fix installation tests (#7069)
This was regressed by 3b1bae8a40
2021-06-11 13:56:41 +02:00
Andrey Lushnikov 55da16d8cd
Revert "feat: switch to the Firefox Stable equivalent by default (#6926)" (#6947)
This reverts commit a25b11659be8887b700311180fcd3653aa9e472b.

In a discussion with Dmitry Gozman we decided to revert this and instead
proceed with the following approach:
- rename `//browser_patches/firefox` to `//browser_patches/firefox-beta`
- rename `//browser_patches/firefox-stable` folder to
  `//browser_patches/firefox`

In all of the folders, we will keep the `BUILD_NUMBER` original so that
it doesn't clash on the CDN.
2021-06-07 15:55:01 -07:00
Andrey Lushnikov a1e8d2d531
feat: switch to the Firefox Stable equivalent by default (#6926)
This patch:
- starts downloading Firefox Stable equivalent by default
- starts running Firefox-Stable on our smoke tests (tests-1)
- starts running Firefox-Beta on our CQ1 tests (tests-2)

Note: there's a little confusion right now with browser names:
- `firefox-stable` - firefox-stable equivalent
- `firefox`- firefox-beta equivalent

I'll rename `firefox` to `firefox-beta` in a follow-up.

Fixes #6817
2021-06-07 15:00:23 -07:00
Dmitry Gozman f745bf1fbc
chore: bring in folio source (#6923)
- Source now lives at `src/test`.
- Former folio tests live at `tests/playwright-test`.
- We use `src/test/internal.ts` that exposes base test without
  Playwright fixtures for most tests (to avoid modifications for now).
- Test types live in `types/testFoo.d.ts`.
- Stable test runner is installed to `tests/config/test-runner` during `npm install`.
- All deps including test-only are now listed in `package.json`.
  Non-test deps must also be listed in `build_package.js` to get included.
2021-06-06 17:09:53 -07:00
Dmitry Gozman 3de3a88930
feat(test): introduce npx playwright test (#6816) 2021-06-03 08:07:55 -07:00
Dmitry Gozman 33c2f6c31e
chore: do not bundle api.json and protocol.yml (#6841)
These are only needed for the driver, so bundle them
in the driver explicitly.
2021-06-02 14:01:05 -07:00
Max Schmitt 79b244a2f4
chore: use bash instead of sh in code blocks (#6847) 2021-06-02 18:23:06 +02:00
Andrey Lushnikov cb4adb1446
feat: install chrome-beta via cli (#6831)
This patch starts introduces `npx playwright install chrome-beta`
command and switches our Chrome Beta tests to it.
2021-06-01 18:26:12 -07:00
Dmitry Gozman 24dca969b6
chore: remove electron/android from build_packages (#6827)
We do not update these packages anymore, and bundle the code in playwright.
2021-06-01 15:53:47 -07:00
Max Schmitt 9592486225
feat: use up2date Chromium user-agents for device descriptors (#6594) 2021-05-18 09:29:48 +02:00
Andrey Lushnikov eb7b4dea0d
tests: disable certain installation tests on Node v16 (#6544)
NPM7 that comes with Node v16 swallows output from installation
scripts, so certain tests don't work.
2021-05-12 13:11:59 -07:00
Max Schmitt e0aaef5eab
docs: get rid of dollar sign prefix in code snippets (#6494) 2021-05-11 20:47:48 +02:00
Max Schmitt a59a494e64
chore: drop support for Node.js 10 (#6371) 2021-04-30 07:49:10 -07:00
Max Schmitt 9cd89ae052
fix: host dependency validation (#6227) 2021-04-20 18:54:53 +02:00
Yury Semikhatsky e4ae6503d7
fix(inspector): fall back to custom executable path for UI (#6214) 2021-04-16 15:19:44 -07:00
Dmitry Gozman bd8433ba49
test: cleanup various testing env variables (#6155) 2021-04-09 07:59:09 -07:00
Joel Einbinder 779355ad51
feat(types): make the template on BrowserType optional (#6142)
This makes it much nicer to use `BrowserType` because it no longer has a template.

Technically a breaking change because of the rare edge case where someone used their own non-browser type inside the template, but I don't consider that intended behavior and think this is fine.
2021-04-08 10:27:24 -07:00
Pavel Feldman a7630c91d5
api: remove Chromium* classes (#6040) 2021-04-01 18:47:14 -07:00
Pavel Feldman 14ccc80cb3
fix(android): bundle android driver in all settings (#5883) 2021-03-22 14:25:40 -07:00
Andrey Lushnikov 2064d27dc6
fix(installer): retain browsers installed via Playwrigth CLI (#5904)
Browser registry is responsible for 3 things:
1. Remove downloaded browsers if there are no packages that refer to them
2. Install default browsers needed for the current package
3. Install browsers on-demand when used through Playwright CLI

Currently, registry relies on a single "download" field in `browsers.json`
to carry both (1) and (2). However, browsers in (3) are marked as
`download: false` so that they aren't installed automatically in (2), so
auto-remove procedure in (1) removes them on subsequent installation.

One possible approach to fix this would be modifying package's `browsers.json` to
change `download: false` to `true` when browsers are installed with
Playwright CLI. This approach was explored here:
bc04a51800

We decided against this since we have a history of issues related to
package modifications after NPM installation. This breaks all
sorts of yarn/npm caching mechanisms.

Instead, this patch is a two-step refactor:
- remove the "download" field in `browsers.json`. Now, all registries
(including old ones from previously-released versions) will retain any
browsers that are mentioned in the `browsers.json`.
- add a new flag "installByDefault", that is **only used** for default
installation.

With this change, the registry tasks are done like this:
- (1) auto-removal: if browser has a back reference, it is retained,
otherwise it is removed from registry
- (2) default installation: use only `installByDefault` to carry default installations
- (3) CLI installation: simply installs browsers. Since we retain
everythings that's referenced in (1), browsers aren't removed.

Fixes #5902
2021-03-22 11:43:29 -07:00
Yury Semikhatsky ddfdf8a76a
fix: install chromium along with ffmpeg (#5774) 2021-03-10 14:01:35 -08:00
Andrey Lushnikov f3a09210da
test: move installation tests out of playwright tree (#5573) 2021-02-23 19:17:15 -08:00
Dmitry Gozman 5cb914b2fe
fix(types): do not use import('electron') (#5572) 2021-02-23 18:48:34 -08:00
Dmitry Gozman ac1599cc2c
fix(registry): handle relative registry path (#5406)
We get relative registry path when PLAYWRIGHT_BROWSERS_PATH or HOME is relative.
In this case, it would be good to resolve to the same absolute path
during installation and execution, and we can usually do that using INIT_CWD.
2021-02-12 11:12:06 -08:00
Dmitry Gozman 3e7b8e3d74
test: add basic end-to-end driver test (#5426)
- Introduce internal "out of process" start()/stop() mode.
- This mode is used both in regular tests and installation tests.
- Emulate basic driver installation, browser download and running.
2021-02-12 09:05:32 -08:00
Andrey Lushnikov 2dfe1c75e1
fix: do not spam console when building playwright packages (#5436) 2021-02-12 00:41:33 -08:00
Dmitry Gozman 99f8e1cf63
docs: document Android and friends (#5415)
These are experimental, currently available through `_android`.
2021-02-11 10:31:57 -08:00
Andrey Lushnikov d499cf08d1
refactor: remove browserPaths in favor of Registry class (#5318)
This patch introduces a new Registry class that incapsulates
all logic regarding browsers and their paths.

Fixes #5278
2021-02-08 16:02:49 -08:00
Dmitry Gozman 983e04374a
chore: fix build/packaging for recorder and traceviewer (#5338) 2021-02-05 16:19:09 -08:00
Andrey Lushnikov cb1b64289c
devops: downloading ffmpeg during install step (#5249)
This patch starts downloading FFMPEG like we download our browsers
instead of bundling it in the NPM package.

With this patch, NPM size is reduced from 8.8MB to 1.7MB.

Consequences:
- `npx playwright` is drastically faster now
- playwright driver for language bindings is way smaller
- projects that bundle Playwright can pass Apple Notorization

Fixes #5193
2021-02-03 09:19:11 -08:00
Pavel Feldman 1db5ef24a8
docs: document electron api (#5229) 2021-02-01 11:43:26 -08:00
Dmitry Gozman 135e0344fc
feat(cli): small improvements (#4952)
- Allow specifying which browsers to install. This comes handy in playwright-cli.
- Print "npx playwright" as a tool name in help messages, instead of "cli".
2021-01-08 15:42:08 -08:00
Pavel Feldman 31ffeb32e3
doc: further align docs w/ playwright.dev (2) (#4871) 2021-01-04 13:50:29 -08:00
Dmitry Gozman 293a7bdd4c
feat(cli): bring in codegen and tests (#4815) 2020-12-28 14:50:12 -08:00
Dmitry Gozman 905f28c339
feat(types): simplify android and electron types (#4829)
These now follow the scheme for regular types.
2020-12-26 20:25:18 -08:00
Dmitry Gozman d40afa2fbf
feat(cli): first few cli commands (#4773)
This sets up cli capabilities and brings in a few commands from playwright-cli.
2020-12-22 14:54:13 -08:00
Pavel Feldman 2ba60e92e3
test(adb): add some adb tests (#4679) 2020-12-11 23:36:08 -08:00
Pavel Feldman 616df7d2f4
fix(adb): minor fixes (#4678) 2020-12-10 16:37:18 -08:00
Pavel Feldman 8fc49c98fa
feat(adb): support webviews (#4657) 2020-12-09 17:15:24 -08:00
Pavel Feldman aacd8e633c
chore: expose adb devices and actions (#4647) 2020-12-09 15:06:57 -08:00
Dmitry Gozman 1c39689dd6
api(videos): introduce a single recordVideo option bag (#4309)
api(videos): introduce a single recordVideo option bag

Currently contains `dir` and `size`, previously known as
`videosPath` and `videoSize`.
2020-11-02 19:42:05 -08:00
Andrey Lushnikov b4ad6e79a4
devops: playwwright-core installation should not touch browser registry (#4089)
Currently, `playwright-core` installation would check browser registry
and remove any unused browsers. This, however, might be unexpected
since `playwright-core` shouldn't touch browser registry at all.

Fixes #4083
2020-10-08 11:42:56 -07:00
Max Schmitt 318ab28171
chore: include api.json in NPM package (#4034) 2020-10-01 12:47:16 -07:00
Dmitry Gozman 4a77363af7
api: update videos api, hide tracing (#4015) 2020-10-01 11:06:19 -07:00
Pavel Feldman 7ccdc5176d
chore: include api.json into the Playwright package (#4003) 2020-09-29 13:48:24 -07:00
Dmitry Gozman df777344a3
api(video): simplify video api (#3924)
- This leaves just `recordVideos` and `videoSize` options on the context.
- Videos are saved to `artifactsPath`. We also save their ids to trace.
- `context.close()` waits for the processed videos.
2020-09-18 17:36:43 -07:00
Yury Semikhatsky 40323aa94d
fix(screencast): use viewport as default size (#3844) 2020-09-11 15:14:31 -07:00
Andrey Lushnikov 868740067b
refactor: consolidate ffmpeg-related files in third_party/ffmpeg (#3815)
This patch:
- moves ffmpeg binaries from `//bin/` to `//third_party/ffmpeg`
- adds [COPYING.GPLv3](https://github.com/FFmpeg/FFmpeg/blob/master/COPYING.GPLv3)
ffmpeg license
- changes npm packaging to include `//third_party/ffmpeg` only in `playwright` and `playwrihgt-chromium` a
2020-09-09 09:51:28 -07:00
Andrey Lushnikov 355ea73a0b
feat: actually bundle FFMPEG binaries with NPM packages (#3804)
This patch:
- adds FFMPEG binaries to the NPM packages
- adds a screencast test to make sure that screencast works. This currently relies on private screencast APIs.

NOTE: with this patch playwright package size grows from `650KB` to `4.2MB`.
2020-09-08 17:51:56 -07:00
Andrey Lushnikov 8b9be6bbbe
devops: fix publishing of @next packages to NPM (#3759)
This patch:
- stop relying on stdout from `//packages/build_package.js` to get
output paths. This was a legacy code that's not needed anymore
- remove stray output from `//packages/build_package.js`
2020-09-03 11:59:58 -07:00
Andrey Lushnikov 5364e3283f
devops: bake commit SHA inside npm package (#3754)
This bakes in `//commitinfo` file with the SHA of the commit that
produced given NPM package.

Fixes #3743
2020-09-03 10:29:43 -07:00
Max Schmitt 254238cdce
enh: bake browser revisions and api into driver (#3514) 2020-08-26 16:01:42 -07:00
Dmitry Gozman a099e941d6
chore: move last rpc files to their place (#3604)
Also update check-deps to be more user-friendly.
2020-08-24 14:48:03 -07:00
Dmitry Gozman 73e53b21df
chore: move injected and debug to src/server (#3591) 2020-08-23 20:25:59 -07:00
Dmitry Gozman 77f803140a
fix(electron): fix electron types, move source to src/server/electron (#3583) 2020-08-23 13:46:40 -07:00
Dmitry Gozman 6fe1cd9812
chore: move protocol files to src/protocol (#3571) 2020-08-21 18:46:11 -07:00
Max Schmitt f3c2584dfc
feat: added rpc driver (#3500) 2020-08-17 12:44:39 -07:00
Dmitry Gozman 3a6b5cab42
test: add sanity test for playwright-electron (#3387) 2020-08-12 14:45:22 -07:00
Joel Einbinder 77e75b447b
chore(test): move electron tests to typescript (#3379) 2020-08-10 23:04:38 -07:00
Dmitry Gozman 3179e71912
feat(rpc): in-process rpc on by default (#3104) 2020-08-10 14:18:58 -07:00
Yury Semikhatsky cbfdca736c
feat(launcher): check dependencies before launch on Windows (#3240) 2020-07-30 17:15:46 -07:00
Max Schmitt d27f97edb1
devops: include protocol and api.md in NPM package (#3195)
The reason for this change is that in Playwright Python we would need the related `protocol.yml` and `api.md` for the installed NPM package. For that we could either add the Git hash to the released package e.g. as a file (and go over the GitHub repo to get the file content) but Pavel proposed that it might be better to include the two files in the NPM package.

Tested locally by adding to the `utils/publish_all_packages.sh` script `--dry` to the NPM publish commands.

cc @aslushnikov @pavelfeldman 

Related issues: https://github.com/microsoft/playwright-python/pull/101 and https://github.com/microsoft/playwright-python/pull/96
2020-07-28 13:30:36 -07:00
Dmitry Gozman fd2e65b73c
api: export all browsers from every package (#3128)
This makes it easier to reason about our packages.
The only difference is what each package downloads.
When the browser is not downloaded, it will fail to launch.

Each browser gets a 'download' attribute in the browser.json file.
2020-07-24 16:36:00 -07:00
Dmitry Gozman 6a4195fd1d
fix(require): allow requiring internals (#3153) 2020-07-24 14:21:25 -07:00
Dmitry Gozman d234dac752
chore: support esm imports (#3125) 2020-07-23 15:14:36 -07:00
Andrey Lushnikov 8fbd647099
fix(playwright-core): bring back index.js in playwright-core (#2691)
References #2540
2020-06-24 13:54:19 -07:00
Andrey Lushnikov 2511cb4c56
devops: drop playwright-electron dependency on playwright-core (#2634)
Drive-by: bump playwright-electron version to 0.4.0; i'll publish it
after this PR lands.
2020-06-18 17:11:10 -07:00
Luke Chu 456c865fe8
docs(playwright-electron/README.md): fix comment mistake (#2568) 2020-06-13 23:10:34 -07:00
Andrey Lushnikov 37ec3a6ae6
fix(types): properly export typescript types from packages (#2364)
Drive-by: move package tests from `//test/installation-tests` to
`//packages/installation-tests`

Fix #2349
2020-05-26 17:19:05 -07:00
Andrey Lushnikov 505d94ab1a
chore: drop dependency on playwright-core in all our packages (#2318)
This patch:
- drops dependency on playwright-core in all our packages. Instead of
  the dependency, packages are now built with `//packages/build_package.sh`
  script.
- unifies `browsers.json` - now there's a single `//browsers.json` file
  that is used to manage browser revisions.

This patch temporary switches canary publishing to `--dryn-run` from CI/CD so that we
can verify that it does sane things.

We'll unify all our package management scripts under `//packages/` in a
follow-up.

Fixes #2268
2020-05-21 13:18:15 -07:00
Yury Semikhatsky 9154f4b6e0
feat(webktt): explicitly enable Playwright domain on start (#2315) 2020-05-21 08:44:57 -07:00
Yury Semikhatsky a010fcd620
feat(webkit): bump revision to 1238 (#2299) 2020-05-19 10:37:01 -07:00
Yury Semikhatsky 74ba03b195
feat(webkit): bump revision to 1235 (#2262) 2020-05-15 17:36:40 -07:00
Joel Einbinder 04aae1c063
chore(electron): mark version 0.3.0 (#2255) 2020-05-14 23:13:06 -07:00
Pavel Feldman 919659a66b
browser(webkit): roll to r1230 (#2241) 2020-05-14 10:41:52 -07:00
Pavel Feldman 17286ab712
feat(webkit): roll to r1228 (#2232) 2020-05-14 07:57:29 -07:00
Joel Einbinder dbef7de42a
feat(electron): types (#2231) 2020-05-13 20:51:53 -07:00
Pavel Feldman 8b5e4398b1 docs: update electron docs 2020-05-12 15:57:53 -07:00
Pavel Feldman 414ae0025e
fix(electron): handle in-event await errors (#2207) 2020-05-12 15:28:37 -07:00
Dmitry Gozman 28845e5ccc
feat(firefox): bump and use context setters (#2194) 2020-05-12 15:13:48 -07:00
Pavel 54b056bddb chore: make electron permanently depend on playwright-core@next 2020-05-12 09:20:55 -07:00
Pavel Feldman 3f8dfed67f
feat(electron): add app.firstWindow convenience method (#2195) 2020-05-12 08:43:41 -07:00
Pavel Feldman e447e9aa54 docs: update README.md for playwright-electorn 2020-05-11 18:56:05 -07:00
Pavel Feldman ffe7084652
feat(electron): experimental electron support (#2166) 2020-05-11 18:00:33 -07:00
Pavel Feldman b88c1a877e
feat(chromium): roll to r767256 (#2183) 2020-05-11 10:46:31 -07:00
Joel Einbinder 83aff38cea
feat(webkit): roll to 1124 (#2156) 2020-05-08 10:02:49 -07:00
Pavel Feldman 9885ba20c7
feat(firefox): roll to r1093 - 77.0b3 (#2152) 2020-05-07 22:49:49 -07:00
Tobias Hernstig d39ec35cd7
chore: Add "homepage" to package.json (#2127) 2020-05-07 12:31:59 -07:00
Andrey Lushnikov 7a01bb1f33
chore: bump package.json version to v1.0.0-post (#2128) 2020-05-06 12:13:23 -07:00
Pavel Feldman 41de5bc388 Revert "chore: mark v0.18.0 (#2122)"
(should go only into branch)
This reverts commit 19e8c327ba.
2020-05-05 16:55:55 -07:00
Pavel Feldman 19e8c327ba
chore: mark v0.18.0 (#2122) 2020-05-05 16:52:54 -07:00
Pavel Feldman da903cb5bb chore: cut v0.18.0-post version 2020-05-05 15:07:44 -07:00
Pavel Feldman b56ba083db
feat(webkit): roll webkit to r1219 (#2119) 2020-05-05 12:26:49 -07:00
Andrey Lushnikov 0bb1ba177c
feat(firefox): roll to r1089 (#2106) 2020-05-04 19:58:47 -07:00
Pavel Feldman 932d6ba6df
feat(chromium): roll to 764964 (Canary) (#2098) 2020-05-04 14:25:11 -07:00
Andrey Lushnikov 6eabb95b49
chore: cut v0.17.0-post (#2095) 2020-05-04 12:15:20 -07:00
Pavel Feldman 08d713973e
test: add third party cookies test (#2073) 2020-05-04 09:14:42 -07:00
Andrey Lushnikov 28bbd93f40
chore: cut v0.16.0 (#2065) 2020-04-30 17:41:03 -07:00
Pavel Feldman c55db6d315
browser(webkit): roll webkit to 1213 (#2045) 2020-04-29 18:40:18 -07:00
Yury Semikhatsky 78b44ed2a0
fix: report new window downloads (#2019) 2020-04-29 18:36:24 -07:00
Pavel Feldman 0228ba4992
feat(registry): implement download registry (#1979) 2020-04-29 17:19:21 -07:00
Pavel Feldman 6c94f604d8
feat(chromium): roll to r763809 (#2028) 2020-04-29 08:44:09 -07:00
Pavel Feldman 2cdf297245
chore: remove uncompiled download-browser (#2018) 2020-04-28 17:06:01 -07:00
Pavel Feldman d52bd92983
chore: read browser revisions off browsers.json (#2009) 2020-04-28 10:37:23 -07:00
Pavel df7338c2ce Revert "chore: cut v1.0.0-post (#1966)"
This reverts commit 7afceeb5a6.
2020-04-27 10:05:11 -07:00
Pavel Feldman b60c006c63
chore: simplify and restructure downloads (#1974) 2020-04-24 19:14:10 -07:00
Andrey Lushnikov 7afceeb5a6
chore: cut v1.0.0-post (#1966) 2020-04-24 15:02:25 -07:00
Andrey Lushnikov 5146dfc74b
chore: cut v0.15.0 (#1957) 2020-04-23 20:26:18 -07:00
Andrey Lushnikov a147d3f99b
chore: sync versions across packages (#1929) 2020-04-22 17:43:13 -07:00
Andrey Lushnikov 9efc66366c
chore: generate README.md for playwright package on prepublish (#1801)
This will ensure that `playwright` package always has a readme.

Fix #1798
2020-04-15 11:29:59 -07:00
Andrey Lushnikov b385ea8415
chore: bump version to v0.13.0-post (#1721) 2020-04-08 17:30:45 -07:00
Andrey Lushnikov 17e645ad34
chore: mark version v0.13.0 (#1720) 2020-04-08 16:53:44 -07:00
Andrey Lushnikov dc7d221722
chore: bump version to v0.12.1-post (#1516) 2020-03-24 12:08:02 -07:00
Andrey Lushnikov a7ca2fef09
chore: mark version v0.12.1 (#1515) 2020-03-24 11:28:07 -07:00
Andrey Lushnikov ed746d9cbd
fix: fix all packages installation (#1514)
This would require a v0.12.1 release.
2020-03-24 11:19:24 -07:00
Dmitry Gozman ed6e0d5513
chore: bump version to v0.12.0-post (#1512) 2020-03-24 10:46:35 -07:00
Dmitry Gozman 08b94ee67b
chore: mark version v0.12.0 (#1497) 2020-03-24 10:40:02 -07:00
Andrey Lushnikov b778789ba8
feat: re-make global browser installation (#1506)
This patch removes the `PLAYWRIGHT_GLOBAL_INSTALL=1` variable
and instead introduces a new var - `PLAYWRIGHT_BROWSERS_PATH`.

You can specify `PLAYWRIGHT_BROWSERS_PATH` to affect where playwright
installs browsers and where it looks for browsers.

Fixes #1102
2020-03-24 00:08:00 -07:00
Andrey Lushnikov a74e23a257
feat: support PLAYWRIGHT_GLOBAL_INSTALL=1 env variable (#1470)
You can install playwright with

```
PLAYWRIGHT_GLOBAL_INSTALL=1 npm i playwright
```

to make it use a single shared location for all browser
downloads.

Fixes #1102
2020-03-23 12:49:53 -07:00
Joel Einbinder 825555cddf
types: better types (#1166)
This generates typescript definitions based on the api.md, instead of autogenerating them from the typescript source code.

Now types
 - only include the public api
 - work with older versions of typescript
 - include descriptions
 - are more consistent
 - are more complete

#6
2020-03-20 01:30:35 -07:00
Andrey Lushnikov f5ecbff16e
devops: remake downloading logic (#1419)
This patch:
- removes `browserType.downloadBrowserIfNeeded()` method. The method
  turned out to be ill-behaving and cannot not be used as we'd like to (see #1085)
- adds a `browserType.setExecutablePath` method to set a browser
  exectuable.

With this patch, we take the following approach towards managing browser downloads:
- `playwright-core` doesn't download any browsers. In `playwright-core`, `playwright.chromium.executablePath()` returns `null` (same for firefox and webkit).
- clients of `playwright-core` (e.g. `playwright` and others) download browsers one way or another.
They can then configure `playwright` with executable paths and re-export the `playwright` object to their clients.
- `playwright`, `playwright-firefox`, `playwright-chromium` and `playwright-webkit` download 
browsers. Once browsers are downloaded, their executable paths are saved to a `.downloaded-browsers.json` file. This file is read in `playwright/index.js` to configure browser executable paths and re-export the API.
- special case is `install-from-github.js` that also cleans up old browsers.
2020-03-19 11:43:35 -07:00
Andrey Lushnikov 08fbc92752
feat: support PLAYWRIGHT_DOWNLOAD_HOST (#1179)
This patch starts respecting `PLAYWRIGHT_DOWNLOAD_HOST` env variable
in `playwright` package and it's vendored flavors (`playwright-firefox`,
`playwright-chromium` and `playwright-webkit`).

Fixes #1045
2020-03-02 13:45:10 -08:00
Andrey Lushnikov d5951b4fc4
fix: properly download browsers (#1173)
Playwright API is parametrized with a `downloadPath` - a path that
is used to download browsers and to look for downloaded browsers.

This patch starts respecting `downloadPath` as part of
`download-browser.js` utility.
2020-03-02 11:49:42 -08:00
Andrey Lushnikov 4ebf419259
fix(yarn): download browsers to package directories (#1133)
This patch makes it so all our packages, like `playwright` and
browser-specific flavors, download browsers to their
directories rather then using directory of `playwright-core`.

This way yarn@1 caches are not busted: they didn't expect that directory
content might change after packages's explicit install step
is failed, there's that was what we were doing.

Fixes #1085
2020-02-26 15:13:31 -08:00
Joel Einbinder 8cfdeb99bd
chore: mark v0.11.1-post (#1027) 2020-02-14 19:23:50 -08:00
Joel Einbinder 2037e01b06
chore: mark v0.11.1 (#1025) 2020-02-14 19:13:08 -08:00
Andrey Lushnikov 39c580a9b1
chore: bump version to 0.11.0-post (#1001) 2020-02-13 19:10:03 -08:00
Andrey Lushnikov cea036ab7e
feat: change vendor package exports (#818)
* feat: change vendor package exports

This patch changes top-level exports for the vendor-specific
packages:
- `playwright-chromium`: now exports an object with a single `chromium`
field
- `playwright-wekbit`: now exports an object with a single `webkit`
- `playwright-firefox`: now exports an object with a single `firefox`

Fixes #814

* fix typo

* address comments
2020-02-03 14:24:03 -08:00
Andrey Lushnikov fce3842011
chore: bump version to 0.10.0-post (#796) 2020-01-31 18:46:34 -08:00
Andrey Lushnikov 6a97216fff
chore: mark version 0.10.0 (#795) 2020-01-31 18:40:44 -08:00
Damian Senn ff302354bb chore: fix package typo in packages README (#707) 2020-01-28 07:52:42 -08:00
Andrey Lushnikov bd726ee499 chore: bump version to v0.9.24-post 2020-01-27 17:26:23 -08:00
Andrey Lushnikov 3e40b4e9d3 chore: mark version 0.9.24 2020-01-27 17:23:53 -08:00
Andrey Lushnikov ee9c2b0c41 chore: bump version to v0.9.23-post 2020-01-27 14:08:14 -08:00
Andrey Lushnikov 03e2754dce chore: mark version 0.9.23 2020-01-27 13:47:02 -08:00