Andrey Lushnikov
755cf60496
feat(test): write missing snapshots to test-results ( #7879 )
...
By default, CI's are set up to upload `//test-results` folder to
artifacts storage. Storing missing snapshots in the `//test-results`
folder too will simplify collecting new baselines from the CI.
2021-08-07 16:52:11 -07:00
Andrey Lushnikov
f3ba2b54ff
feat: introduce react selectors ( #8069 )
...
This patch adds support for the `react` selector engine that allows
selecting DOM elements based on the component name.
> **NOTE**: in case of multi-root components (React.Fragment), `react`
engine will select all root DOM elements.
> **NOTE**: `react` engine supports react v15+.
References #7189
2021-08-07 16:51:39 -07:00
Pavel Feldman
40fb9d85e0
feat(test-result): render image diff ( #8061 )
2021-08-07 15:47:03 -07:00
Andrey Lushnikov
51fb19561c
devops: support npx playwright install --with-deps command ( #7194 )
...
The common pattern today is to have two commands to configure CI:
```sh
npx playwright install-deps chromium
npx playwright install chromium
```
With this patch, this becomes:
```sh
npx playwright install --with-deps chromium
```
Note: `--with-deps` might call `sudo`.
2021-08-07 03:53:33 -07:00
Pavel Feldman
b1dc84c953
chore: add debug logging to localize steps error ( #8062 )
2021-08-06 20:37:57 -07:00
Pavel Feldman
3424f59e67
chore(expect): polish matcher names, remote arguable ones ( #8060 )
2021-08-06 16:58:42 -07:00
Dmitry Gozman
5f297b6894
feat(junit reporter): add attachments to stdout ( #8059 )
...
`JUnitReporter` follows the common format for attachments in JUnit reports,
recognized by GitLab and Jenkins among others.
2021-08-06 15:47:54 -07:00
Pavel Feldman
79e8592146
docs: refresh getting started docs ( #8054 )
2021-08-06 14:02:41 -07:00
Pavel Feldman
2e63c59157
feat(trace-viewer): show remote object previews in console ( #8024 )
2021-08-06 11:37:36 -07:00
Max Schmitt
7ee92f3fc8
fix(trace-viewer): when clicking on a step no snapshot was shown ( #8038 )
2021-08-06 16:13:05 +02:00
Dmitry Gozman
73b7230931
fix(trace viewer): render snapshots with correct viewport size ( #8020 )
2021-08-05 16:04:09 -07:00
Dmitry Gozman
d846c05619
fix(test runner): make obtainWorker() resolve with null when stopping ( #8018 )
...
This ensures that we properly exit from `Dispatcher.run()`, print
epilogue and set the right exit code.
2021-08-05 15:00:00 -07:00
Dmitry Gozman
7da669bcc4
fix(trace viewer): split view resizer should work ( #8021 )
2021-08-05 14:59:45 -07:00
Pavel Feldman
a8d404cd29
feat(test-runner): basic html reporter ( #7994 )
2021-08-05 13:36:47 -07:00
Max Schmitt
98f9f050a1
fix(isVisible): do not throw when element is not connected ( #8012 )
2021-08-05 21:10:33 +02:00
Pavel Feldman
19b673e467
fix(webpack): use production mode in production builds ( #8007 )
2021-08-05 12:07:43 -07:00
Pavel Feldman
0a97e87817
feat(expect): log-scale expect pollers ( #8010 )
2021-08-05 10:55:37 -07:00
Yury Semikhatsky
28fb3c776a
feat: response interception after redirects in chromium ( #7910 )
2021-08-05 08:49:02 -07:00
Max Schmitt
62a4d82b7b
chore: cleanup locators implementation ( #7990 )
2021-08-05 17:13:46 +02:00
Dmitry Gozman
9ab60f66bf
feat(tracing): allow calling tracing.start multiple times ( #7992 )
...
Subsequent invocations reset the trace. This removes the `tracing._reset` method.
Also fixed a bug where BASE element was not reset properly.
Also fixed a bug where tracing would affect the result of protocol call
by setting `callMetadata.error` property.
2021-08-04 21:11:35 -07:00
Dmitry Gozman
1bbf86d060
feat(test runner): file scope fixtures ( #7969 )
...
These are reset after running tests from a single file.
2021-08-04 21:11:02 -07:00
Max Schmitt
3e491114f2
test: fix some failing locators tests ( #7989 )
2021-08-04 23:36:27 +02:00
Max Schmitt
869f8d541b
chore: PlaywrightClient/Server enhancements ( #7980 )
...
- ensure timeout results in a meaningful message
- add onDisconnect handler
2021-08-04 19:45:33 +02:00
Max Schmitt
4e8e75beb1
chore: ensure assertions result in a message ( #7981 )
2021-08-04 08:26:07 -07:00
Dmitry Gozman
ea4f42b7ed
feat(report): add video to attachments ( #7976 )
2021-08-03 17:07:57 -07:00
Dmitry Gozman
3e05d8e9fa
feat(tracing): introduce _reset() and _export() ( #7974 )
...
`tracing._export({ path })` exports current tracing state into a file
and does not require tracing to be stopped.
`tracing._reset()` resets current tracing state, but keeps resources
around so they can be referenced in the future snapshots. Does not stop.
The usage pattern is:
```js
await tracing.start({ screenshots: true, snapshots: true });
// ...
await tracing._reset();
// Do stuff, it will all be in the export below.
await tracing._export({ path });
// ...
await tracing.stop();
```
2021-08-03 16:08:06 -07:00
Max Schmitt
385d489b35
feat(test-runner): re-enable web server ( #7906 )
...
Co-authored-by: Joel Einbinder <joel.einbinder@gmail.com>
2021-08-03 23:24:14 +02:00
Max Schmitt
2236d74f3f
chore: locator code style nits ( #7972 )
2021-08-03 13:32:39 -07:00
Dmitry Gozman
c406b23387
feat(tracing): do not store scripts in trace ( #7970 )
...
We do not need them for snapshots.
2021-08-03 13:05:58 -07:00
Joel Einbinder
4fabe5e6e4
feat(drag): sourcePosition and targetPosition ( #7803 )
2021-08-03 13:12:34 -04:00
Joel Einbinder
a2cbba9c1c
chore(typescript): update to 4.3 ( #7809 )
2021-08-03 12:21:07 -04:00
Fabian Mendez
731f9453c5
feat(inputValue): implement inputValue for select elements ( #7951 )
2021-08-03 08:22:40 -07:00
Pavel Feldman
3b34e57ee4
feat(test-runner): introduce test.step ( #7956 )
2021-08-02 22:11:37 -07:00
Pavel Feldman
5803035c1b
feat(test-runner): introduce steps ( #7952 )
2021-08-02 17:17:20 -07:00
Pavel Feldman
af30d267b6
feat(test-runner): experiemental expect plumbing ( #7926 )
2021-07-30 16:07:02 -07:00
Dmitry Gozman
081b8683a3
feat(test runner): expect(locator) matchers to show a nice error on timeout ( #7935 )
2021-07-30 13:12:49 -07:00
Dmitry Gozman
5a3ebfc9f9
fix(test runner): dot reporter incorrectly splits by 80 ( #7925 )
2021-07-30 01:34:28 -07:00
Dmitry Gozman
2e387b3a3a
chore(test runner): reuse TestGroup instead of DispatcherEntry ( #7924 )
2021-07-29 21:41:06 -07:00
Pavel Feldman
4163cec93b
feat(test-runner): introduce actionTimeout and navigationTimeout ( #7919 )
2021-07-29 21:03:50 -07:00
Dmitry Gozman
34c0c342fa
fix(test runner): make test order stable when fixtures are changing ( #7923 )
...
We used to sort based on workerHash, and that changes depending on
the exact worker fixtures list. Now we replace workerHash with
an ordinal when constructing the TestGroup list to preserve the
natural order.
2021-07-29 18:27:47 -07:00
Dmitry Gozman
a18b4fb49a
fix(test runner): workaround npm bug that sends multiple sigints ( #7916 )
...
When running through NPM, we can get multiple SIGINT signals
for a single Ctrl+C - the more npm layers you use, the more SIGINTs you get.
This is a known NPM bug present since at least NPM v6.
Workaround is to give NPM one second for the fake signals, and
only then remove out listener.
2021-07-29 16:01:22 -07:00
Dmitry Gozman
40901e8b9a
feat(test runner): test.skip(title, testFunction) syntax ( #7922 )
2021-07-29 14:33:37 -07:00
Pavel Feldman
2c095294c5
feat(locators): introduce allTextContents, allInnerTexts ( #7920 )
2021-07-29 14:09:35 -07:00
Dmitry Gozman
dd0b089d13
feat(test runner): createContext fixture for multi-context scenarios ( #7779 )
2021-07-29 14:03:58 -07:00
Yury Semikhatsky
722f0606c4
feat(firefox): response interception ( #7510 )
2021-07-29 10:12:47 -07:00
Pavel Feldman
1807142eb7
feat(expect): even more matchers ( #7902 )
2021-07-29 07:33:19 -07:00
Jan Sepke
600d82b17c
fix(cli): fix typo in help text ( #7903 )
...
Co-authored-by: Max Schmitt <max@schmitt.mx>
2021-07-29 11:23:50 +02:00
Pavel Feldman
9e07029973
chore: relayout matchers ( #7901 )
2021-07-28 22:30:37 -07:00
Pavel Feldman
3187ffdebf
feat(expect): add more matchers ( #7891 )
2021-07-28 15:44:44 -07:00
Dmitry Gozman
3f0485486d
feat(test runner): show errors from interrupted tests when available ( #7874 )
...
This shows the exact operation that is timing out (like click) when
user hits Ctrl+C.
2021-07-28 15:43:37 -07:00
Pavel Feldman
446d3f1018
chore: update locator docs, make it not force-visible ( #7888 )
2021-07-28 13:30:30 -07:00
Pavel Feldman
49e9f8c15e
feat(expect): add text and true matchers ( #7873 )
2021-07-28 12:07:11 -07:00
Max Schmitt
74cd7584ac
chore: enable linting with ESLint for TSX files ( #7885 )
2021-07-28 18:21:55 +02:00
Pavel Feldman
b8dc0b9156
feat(expect): implement toMatchText ( #7871 )
2021-07-27 20:26:12 -07:00
Pavel Feldman
cc43f9339f
feat(locators): implement last,nth ( #7870 )
2021-07-27 15:58:18 -07:00
Pavel Feldman
b9aad5eb86
chore: move locators to strict selectors ( #7866 )
2021-07-27 15:27:36 -07:00
Pavel Feldman
982f61d575
chore: BFS nodes, simplify querying ( #7861 )
2021-07-27 12:53:12 -07:00
Dmitry Gozman
da9b488d0d
fix(test-runner): sharding tests does not show a lot of skips ( #7708 )
2021-07-27 11:04:38 -07:00
Dmitry Gozman
cf886b3829
fix(test runner): align shard info to be one-based everywhere ( #7859 )
...
We used to treat shard from cli and shard from config differently.
2021-07-27 09:13:04 -07:00
Pavel Feldman
0a6ae11da1
feat(strict): introduce strict mode ( #7851 )
2021-07-26 22:00:23 -07:00
Pavel Feldman
d370f65713
chore: rename $,$$ to readable names ( #7848 )
2021-07-26 15:46:51 -07:00
Pavel Feldman
95001fe8d1
chore: unify v1 and v2 selector handling ( #7844 )
2021-07-26 15:07:12 -07:00
Thomas Chaplin
9d7a0ec2d9
fix(dependencies): add missing package libxshmfence1 to ubuntu:20.04 ( #7796 )
2021-07-26 10:50:51 +02:00
Pavel Feldman
7bdb901bb0
feat(webkit): roll WebKit to 1521 ( #7798 )
2021-07-23 09:13:57 -07:00
Dmitry Gozman
bf6482a58d
fix(test runner): do not override browserName when using without --browser ( #7806 )
2021-07-23 09:04:20 -07:00
Pavel Feldman
827fb80465
feat(locator): implement element locators ( #7808 )
2021-07-22 21:37:20 -07:00
Pavel Feldman
a20e20cdae
fix(trace-viewer): can't read object type ( #7802 )
2021-07-22 13:35:11 -07:00
Dmitry Gozman
03ebe21323
faet(test runner): help when describe() is misused ( #7753 )
2021-07-22 12:34:37 -07:00
Max Schmitt
449c8a77dd
chore: disable source-map reference in JS for production builds ( #7622 )
2021-07-22 20:29:36 +02:00
Max Schmitt
9e3ac1f3a2
fix(test-runner): warn users who invoke the test-runner with Jest ( #7743 )
2021-07-22 18:27:01 +02:00
Max Schmitt
acdc531efc
chore: migrate connect/overCDP to options instead of params ( #7606 )
2021-07-22 16:55:23 +02:00
Joel Einbinder
483b7d6a0d
feat(test-runner): mark launch as experimental ( #7757 )
2021-07-21 09:51:27 -05:00
Joel Einbinder
20ba7c3a96
feat(test-runner): use require.resolve for globalSetup and globalTeardown ( #7752 )
2021-07-20 15:13:40 -05:00
Joel Einbinder
051dc332a6
feat(test-runner): use require to resolve reporters ( #7749 )
2021-07-20 15:03:01 -05:00
Joel Einbinder
bdbf9c9dda
perf(test-runner): lazy require babel ( #7750 )
2021-07-20 13:24:29 -05:00
Max Schmitt
c84c5c8c9b
fix(test-runner): do not list tests to stdout when JSON reporter is used ( #7730 )
2021-07-20 01:10:43 +02:00
Dmitry Gozman
2ac0c59156
feat(test-runner): rename Test to TestCase ( #7725 )
2021-07-19 14:54:18 -07:00
Joel Einbinder
56ada374df
feat(dragAndDrop): page.dragAndDrop ( #6910 )
2021-07-19 12:42:55 -05:00
Joel Einbinder
d72efbe181
feat(test-runner): smaller error message paths ( #7384 )
2021-07-19 12:20:24 -05:00
Joel Einbinder
0cf9cf0829
fix(test-runner): set expand: false for expect. ( #7722 )
2021-07-19 11:59:53 -05:00
Andrey Lushnikov
b2c5bfb72c
chore: nicer message to install dependencies ( #7715 )
...
If we know how to install all dependencies, then we should recommend
a Playwright CLI one-liner to install dependencies.
References #7682
2021-07-19 03:54:42 -07:00
Max Schmitt
2ff25522cc
test: rework port forwarding server tests to launch server out of process ( #7693 )
2021-07-19 07:53:12 +02:00
Dmitry Gozman
66ea613c4d
feat(test-runner): small changes to Reporter api ( #7709 )
...
- `TestResult.startTime`
- `Suite.location` is optional now
- `Test.status()` renamed to `Test.outcome()` to differentiate against a
`Test.expectedStatus` and `TestResult.status` of the different type.
2021-07-18 17:40:59 -07:00
Dmitry Gozman
602d815981
fix(test-runner): list mode should print tests ( #7665 )
...
It was not doing anything before.
2021-07-16 22:34:55 -07:00
Dmitry Gozman
167db03f05
feat(test-runner): export reporter api as @playwright/test/reporter ( #7692 )
2021-07-16 21:15:03 -07:00
Andrey Lushnikov
3c6b058e2b
chore: nicer message to ask for browser installation ( #7691 )
...
References #7682
2021-07-16 17:00:27 -07:00
Dmitry Gozman
18be5f5319
feat(test-runner): suite per project ( #7688 )
...
This makes our suite structure the following:
```
Root(title='') > Project(title=projectName) > File(title=relativeFilePath) > ...suites > test
```
Removed `fullTitle()` because it is not used directly by anyone.
Default reporters now report each test as
```
[project-name] › relative/file/path.spec.ts:42:42 › suite subsuite test title
```
2021-07-16 15:23:50 -07:00
Pavel Feldman
bde764085c
feat(test-runner): introduce attachments ( #7685 )
2021-07-16 13:48:37 -07:00
Dmitry Gozman
31572fc372
chore(test-runner): misc changes to reporter api ( #7664 )
...
- `Location` with `file`, `line` and `column`.
- `fullTitle` does not include project name.
- `titlePath` method.
- All methods of `Reporter` are optional.
- Removed `Test.skipped` property that is superseeded by `Test.status()`.
- Replaced `Suite.findTest()` with `Suite.allTests()`.
- Removed `Test.suite` property.
2021-07-16 12:40:33 -07:00
Joel Einbinder
2f07846c9a
fix(webkit): proper value for event.buttons ( #7680 )
2021-07-16 13:06:00 -05:00
Andrey Lushnikov
865aff8c9d
feat: support msedge-dev installation ( #7679 )
...
Fixes #7677
2021-07-16 09:56:51 -07:00
Andrey Lushnikov
272759f296
feat(chromium): roll Chromium to another new version ( #7676 )
2021-07-16 09:03:42 -07:00
divdavem
87b0cc530c
feat(cli): add --ignore-https-errors option ( #7671 )
2021-07-16 07:33:20 -07:00
Dmitry Gozman
8b2dd2e3d1
chore(test-runner): remove the notion of Spec ( #7661 )
...
We now have Suites and Tests. When running multiple projects the whole
suite is cloned for each project. Same happens for repeatEach.
This simplifies the reporters API, but there is still room for improvement.
JSON reporter continues to produce old json output.
2021-07-15 22:02:10 -07:00
Max Schmitt
86b21d5299
feat: add High DPI and Low DPI Desktop device descriptors ( #7531 )
2021-07-15 22:16:27 +02:00
Max Schmitt
cf0fb33540
fix: add log entry if selector resolves to multiple elements on click ( #7623 )
2021-07-15 22:06:08 +02:00
Andrey Lushnikov
dd26529b3d
feat(firefox): roll to Firefox 90 ( #7652 )
...
Fixes #7583
2021-07-15 10:53:45 -07:00
Joel Einbinder
7e95ee07ae
fix(utils): fix the list dependnecies script ( #7649 )
2021-07-15 10:27:16 -07:00
Max Schmitt
1b92c674f9
feat: have up2date user-agents for WK and FF ( #7644 )
2021-07-15 17:41:23 +02:00
Yash Ladha
03b26ec783
chore(android): fix type in DeviceBackend ( #7628 )
2021-07-14 23:42:09 -07:00
Pavel Feldman
67f5fb6a4f
fix(webkit): add libevdev dep ( #7630 )
2021-07-14 20:20:03 -07:00
Pavel Feldman
3eb21e2322
feat(webkit): roll to r1515 ( #7625 )
2021-07-14 18:43:51 -07:00
Dmitry Gozman
bb34d7a953
fix(test-runner): sanitize snapshot name before constructing a path ( #7620 )
...
This avoids problems with `toMatchSnapshot('../../dir/file.png')`
where we append this path to `snapshotDir` and end up in some random
place.
Also added a note to documentation.
2021-07-14 16:31:19 -07:00
Max Schmitt
6cc2fe178e
feat(test-runner): migrate to launch config/server ( #7603 )
2021-07-15 01:19:45 +02:00
Max Schmitt
a26fe65db3
fix(test-runner): start webServer before globalSetup/teardown ( #7604 )
2021-07-14 19:01:46 +02:00
Dmitry Gozman
d1170b30fc
Revert "api: remove timeout option from isVisible and isHidden methods ( #7414 )" ( #7600 )
...
This reverts commit 9f71c96740 .
2021-07-14 10:46:00 +02:00
Dmitry Gozman
0742cb9076
chore: move working with browser channels to Registry Executables ( #7581 )
2021-07-13 19:03:49 -07:00
Dmitry Gozman
57c5e4d8cf
chore: replace Registry api with Executable list ( #7544 )
2021-07-13 15:57:40 -07:00
Max Schmitt
767e22c6b2
fix(network): process last inserted routes first in request interception ( #7585 )
2021-07-13 20:22:01 +02:00
Alex Plischke
27d89732ce
Use correct skip check when generating junit reports ( #7571 )
2021-07-13 05:05:34 -07:00
Joel Einbinder
9264a8d5b1
fix(chromium): disable use-zoom-for-dsf ( #7407 )
2021-07-12 22:56:00 -05:00
Joel Einbinder
eb31b9e4a9
feat(test-runner): support esm modules in more places ( #7542 )
2021-07-12 11:59:58 -05:00
Dmitry Gozman
65606c093a
chore: simplify Registry api ( #7451 )
2021-07-09 16:10:23 -07:00
Max Schmitt
894ff15e65
Revert "chore(eval): merge internal evaluate functions ( #7517 )" ( #7535 )
...
This reverts commit 7a5ef0d157 .
2021-07-09 16:19:42 +02:00
Joel Einbinder
7a5ef0d157
chore(eval): merge internal evaluate functions ( #7517 )
2021-07-08 23:55:01 -07:00
Dmitry Gozman
77deca1d6b
feat(test runner): export testInfo.data ( #7525 )
...
This is a key-value storage for any information that goes into the report.
Also export JSONReport types.
2021-07-08 17:16:36 -07:00
Max Schmitt
e604f185ca
fix(test-runner): with automatic fixtures workerInfo was undefined after conditional skip ( #7521 )
2021-07-08 21:55:43 +02:00
Yury Semikhatsky
b2742976a8
fix(runner): do not restart worker after skipping tests ( #7511 )
2021-07-08 09:36:28 -07:00
Max Schmitt
ae489b1c43
fix(test-runner): do not override error with unhandled error ( #7507 )
2021-07-08 18:24:07 +02:00
Max Schmitt
1cc2a2dc59
feat(har): add bodySize, transportSize, headersSize ( #7470 )
...
Co-authored-by: tnolet <tim@checklyhq.com>
2021-07-08 18:22:37 +02:00
Dmitry Zakharov
5464ad849e
fix(test-runner): handle negated toMatchSnapshot result ( #7345 )
2021-07-07 18:51:38 -07:00
Max Schmitt
08da9d207e
chore: move processLauncher into src/utils ( #7504 )
2021-07-07 21:14:16 +02:00
Dmitry Gozman
2073193c36
fix(test runner): keep track of remaining tests on the runner side ( #7486 )
...
This fixes two issues:
- Sudden worker process exit is properly accounted for.
- We can stop() workers willy-nilly, e.g. after reaching maxFailures.
Details:
- DonePayload does not send `reamining` anymore, and worker does not track it.
- Instead, `Dispatcher._runJob` track remaining tests and acts accordingly.
- Upon worker exit, we emulate a fatal error for all remaining tests.
Drive-by:
- Do not report onTestBegin after reaching maxFailures to avoid confusion.
Before, we did report onTestBegin, but not onTestEnd.
- List reporter aligned between "running" and "finished" state - it was
one character misplaced.
- Added a SIGINT test.
2021-07-07 12:04:43 -07:00
Max Schmitt
98bcf26656
feat(test-runner): add webServer ( #7368 )
2021-07-07 20:19:42 +02:00
Max Schmitt
ee0497c725
chore: do not log process not found warning on win when PID is not found ( #7500 )
2021-07-07 19:40:09 +02: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
Max Schmitt
371aa3dab2
feat: add browser.newContext({ baseUrl }) ( #7409 )
2021-07-06 21:16:37 +02:00
Max Schmitt
b846ddda04
feat(download): introduce Download.cancel ( #7462 )
2021-07-06 09:38:50 +02:00
Max Schmitt
2231992d74
feat(webkit): roll to 1507 ( #7463 )
2021-07-05 12:49:31 +02:00
Yury Semikhatsky
02ff213d4d
feat(webkit): intercepted response body ( #7229 )
2021-07-05 00:27:14 -07:00
Pavel Feldman
f52a53e21e
feat(trace-viewer): add nicer params rendering ( #7448 )
2021-07-02 16:45:09 -07:00
Dmitry Gozman
444d1eb51a
feat(test runner): run modifier functions once if they do not depend on test fixtures ( #7436 )
2021-07-02 15:49:05 -07:00
Pavel Feldman
99d7d196c5
feat(trace-viewer): render call info w/ params, result ( #7438 )
2021-07-02 14:33:38 -07:00
Andrey Lushnikov
ec8d0629f3
feat: support msedge-beta channel ( #7442 )
...
Fixes #7232
2021-07-02 12:55:46 -07:00
Dmitry Gozman
040d81052a
fix(cli): do not suggest internal tools in install command ( #7437 )
2021-07-02 11:22:26 -07:00
Andrey Lushnikov
fe32d38414
feat: move browser fonts to tools section ( #7443 )
...
This way we not only fix Docker images, but also fix `npx playwright
install-deps` in virtual machines.
2021-07-02 02:09:31 -07:00
Pavel Feldman
82b21e912e
feat(trace-viewer): add error links to actions ( #7434 )
2021-07-01 20:46:56 -07:00
Dmitry Gozman
4c7343fe96
chore: move installDeps to Registry ( #7431 )
...
This is an effort to consolidate all handling of browser binaries in a single place.
2021-07-01 17:14:04 -07:00
Pavel Feldman
e19d509c32
feat(icon): add an icon for trace viewer ( #7430 )
2021-07-01 17:05:14 -07:00
Dmitry Gozman
d46eae44d1
chore: move validateHostRequirements to Registry ( #7428 )
...
This is an effort to consolidate all handling of browser binaries in a single place.
2021-07-01 16:17:59 -07:00
Pavel Feldman
8fb0454488
fix(trace-viewer): fall back to stable channels ( #7429 )
2021-07-01 15:26:55 -07:00
Pavel Feldman
b9b0faf120
feat(trace-viewer): render console messages ( #7418 )
2021-07-01 14:31:20 -07:00
Dmitry Gozman
9f71c96740
api: remove timeout option from isVisible and isHidden methods ( #7414 )
...
It is unused and confusing.
2021-07-01 13:30:16 -07:00
Max Schmitt
dc1e5638bb
feat(webkit): roll to 1505 ( #7421 )
2021-07-01 19:26:02 +02:00
Max Schmitt
b5d134d45b
feat(firefox): roll to 1271 ( #7419 )
2021-07-01 18:52:14 +02:00
Max Schmitt
027fc4c0b4
chore: hide request interception for 1.13 ( #7425 )
2021-07-01 18:33:47 +02:00
Pavel Feldman
9c3ae38914
fix(chromium): disable the new broken upstream feature ( #7416 )
2021-07-01 07:49:49 -07:00
Pavel Feldman
f43b4efbc9
fix(trace-viewer): include waitFor* in trace viewer ( #7413 )
2021-06-30 17:56:48 -07:00
Dmitry Gozman
63e6e530ca
fix(launch): replace 'npm install playwright' with 'npx playwright install' ( #7410 )
...
... in the error message
2021-06-30 16:31:55 -07:00
Anirudh Modi
8f2bfed659
feat: added more logging info for $ ( #7344 )
2021-06-30 11:17:09 -07:00
Pavel Feldman
e9246089d5
test(trace-viewer): start adding tests ( #7393 )
2021-06-29 22:35:50 -07:00
Joel Einbinder
a1f9fc3f32
fix(test runner): properly match test suffix ( #7392 )
2021-06-29 17:49:56 -07:00
Dmitry Gozman
fc0b8ad3f0
fix(tracing): record scroll position for all scrolled elements ( #7388 )
2021-06-29 16:20:15 -07:00
Joel Einbinder
7629587914
fix(test-runner): work with .mjs files ( #7373 )
2021-06-29 15:28:41 -07:00
Pavel Feldman
b1d66d54f0
fix(tracing): explicitly list actions to snapshot ( #7376 )
2021-06-29 15:28:15 -07:00
Dmitry Gozman
3ce1f5c33e
chore: avoid execSync when determining hostPlatform ( #7386 )
2021-06-29 13:39:30 -07:00
Dmitry Gozman
6b3614fd4c
feat(test runner): support test.setTimeout for the whole block ( #7387 )
...
This enables `test.setTimeout()` outside of the test body, that
affects all tests in the block (either file or describe).
2021-06-29 13:33:13 -07:00
Joel Einbinder
368880962f
fix(test-runner): better test match glob ( #7382 )
2021-06-29 11:49:50 -07:00
Dmitry Gozman
6aefa02e91
feat(test runner): improve reporters api ( #7370 )
...
- onEnd may return a Promise
- onEnd now takes a result for the full run
- onTimeout is replaced with onEnd(result)
2021-06-29 10:55:46 -07:00
Pavel Feldman
7062278265
fix(trace): copy cached resources on write (optimization) ( #7372 )
2021-06-28 22:01:08 -07:00
Dmitry Gozman
1660334357
feat(install): docs and help ( #7365 )
...
Drive-by: remove test-intro and references to it.
2021-06-28 18:50:24 -07:00
Dmitry Gozman
530523cb67
feat(setInputFiles): support label retargeting ( #7364 )
...
This way `page.setInputFiles('label')` works, similarly to other input actions.
2021-06-28 14:18:01 -07:00
Pavel Feldman
a8d48a1a48
chore: remove hard-coded wrapApi names ( #7347 )
2021-06-28 13:27:38 -07:00
Max Schmitt
0776cf76a2
feat(test-runner): do only allow unique spec titles per suite ( #7300 )
2021-06-28 22:13:35 +02:00
Max Schmitt
9f9201420a
fix(websockets): filter for text and binary frames ( #7360 )
2021-06-28 21:23:29 +02:00
Ronie Martinez
409aeaa443
feat(codegen): Add type annotations to Python output and make PEP8-compliant ( #7337 )
2021-06-26 13:11:32 -07:00
Pavel Feldman
02538fb587
fix(trace): account for last child node removal ( #7332 )
2021-06-25 18:52:36 -07:00
Pavel Feldman
ec47b03722
fix(trace): show interrupted actions in trace ( #7329 )
2021-06-25 17:14:19 -07:00
Andrey Lushnikov
1157f622f3
fix(test-runner): default @playwright/test timeout to 0 ( #7312 )
...
All actions for the `@playwright/test` actions inside test should
have default 0 timeout. This way they will never clash with the
test timeout.
2021-06-24 23:28:01 -07:00
Max Schmitt
908ad6921f
fix(test-runner): make it compatible when running as a sub-process ( #7298 )
...
Works around the following bug: https://github.com/nodejs/node/issues/12921
2021-06-25 00:54:06 +02:00
Max Schmitt
4c6deaa449
test: added tests for WebSocket over Socks proxy ( #7235 )
2021-06-24 18:50:16 +02:00
Pavel Feldman
e6bf0a07fe
feat(force): add fill, selectOption, selectText ({force}) ( #7286 )
2021-06-24 08:18:09 -07:00
Max Schmitt
bd86e70465
feat(test-runner): allow to focus a test in a location ( #7208 )
2021-06-24 10:02:34 +02:00
Pavel Feldman
5732307280
feat(inputValue): implement *.inputValue() ( #7285 )
2021-06-23 22:19:20 -07:00
Joel Einbinder
1a6d46d844
chore(typescript): compile with babel, lint everything with tsc ( #6872 )
2021-06-23 18:01:48 -07:00
Dmitry Gozman
4c6fa42810
fix(test runner): expose real stack traces and speed up locations ( #7265 )
...
Stop wrapping/prepending error messages so that we do not loose the stack trace. For this, update a few manually thrown errors with better messages (usually including a file path).
Speed up locations by doing manual `sourceMapSupport.wrapCallSite()` for a single call site. Performance gain in the runner process with 100 files x 100 tests each:
- 25% on the fresh run without babel cache;
- 80% on the cached run where babel is almost instant.
Also some obvious cleanups around stack traces (removing unused code).
2021-06-23 10:30:54 -07:00
Max Schmitt
103f8ddd06
Revert "chore: update eslint config ( #6840 )" partly ( #7268 )
...
This reverts commit ec7d37d92f .
2021-06-23 11:08:35 +02:00
Max Schmitt
99bbc51760
fix(test-runner): support ANSII terminals with list reporter ( #7258 )
2021-06-22 19:04:24 +02:00
Dmitry Gozman
73a43fce60
chore(test runner): self profile under PWTEST_PROFILE_DIR ( #7252 )
...
`PWTEST_CLI_ALLOW_TEST_COMMAND=1 PWTEST_PROFILE_DIR=./profile node lib/cli/cli.js test -c <dir/config>`
2021-06-21 14:49:43 -07:00
Max Schmitt
143689e34f
fix: Jest isError handling to work with TypeError ( #7251 )
2021-06-21 21:48:24 +02:00
Dmitry Gozman
6118d16edd
fix(test runner): properly keep track of requireFile to support helpers/wrappers ( #7243 )
...
This fixes an issue where we incorrectly labeled and assigned ids for tests
that declared tests in require'd files or used test wrappers.
See new tests for examples.
2021-06-21 11:25:15 -07:00
Max Schmitt
590184998f
chore: improve connectOverCDP error handling ( #7239 )
2021-06-21 19:57:00 +02:00
Pavel Feldman
ea4eebeb2d
feat(test-runner): document tagging, implement grep-invert ( #7227 )
2021-06-18 17:56:59 -07:00
Yury Semikhatsky
c0cd2d4579
feat: response interception ( #7122 )
2021-06-18 11:04:48 -07:00
Yury Semikhatsky
79b2e5ddeb
feat(webkit): bump to 1500 ( #7224 )
2021-06-18 10:20:09 -07:00
Dmitry Gozman
388c6f5196
feature(test runner): capture error and pending calls when timing out ( #7193 )
2021-06-17 15:09:38 -07:00
Max Schmitt
5bf69b667e
fix(test-runner): allow additional params when pw-test is not installed ( #7200 )
2021-06-17 13:40:49 -07:00
Ross Wollman
219e5138be
feat(response): expose connection details in API ( #7150 )
2021-06-17 13:04:55 -07:00
Dmitry Gozman
5e471a3ece
feat(test runner): add type to TestInfo.error ( #7207 )
...
It has a very special `TestError` type, but we say it's `any` for some reason.
2021-06-17 12:14:28 -07:00
Joel Einbinder
10a82f862c
fix(snapshotter): support constructed CSSStyleSheet
...
Fixes #7085
2021-06-17 09:41:29 -07:00
Pavel Feldman
82a50b0e1d
fix(test-runner): property handle artifacts in context of preserveOutput ( #7181 )
2021-06-16 16:05:30 -07:00
Andrey Lushnikov
0cfea9a623
feat(chromium): roll to r891964 ( #7185 )
2021-06-16 16:00:54 -07:00
Pavel Feldman
184f2c2e93
feat(test-runner): allow specifying video size ( #7158 )
2021-06-16 07:51:54 -07:00
Andrey Lushnikov
a3e4185b2f
chore: nuke 'webkit-technology-preview' experiment ( #7164 )
...
It proved to be unmaintainable due to the following reasons:
- determining upstream branch for the technology preview was a manual
and tedious process
- once determined, actual Safari Technology Preview occasionally
diverted from the branch
2021-06-15 23:58:30 -07:00
Andrey Lushnikov
ec68b31dc4
feat: support chromium-with-symbols channel ( #7135 )
...
References #7130
2021-06-15 17:57:31 -07:00
Joel Einbinder
38e27c9c6c
fix(test-runner): case insensitive test filtering
2021-06-15 17:27:52 -07:00
Yury Semikhatsky
e5d0a535a8
fix: return valid browser from context.browser() when connect over CDP ( #7155 )
2021-06-15 16:06:38 -07:00
Dmitry Gozman
b74ca36fb3
chore: create Selectors for each Playwright object ( #7154 )
...
We currently have singleton `serverSelectors` that is shared between
the real Playwright and internal Playwrights.
2021-06-15 14:56:29 -07:00
Joel Einbinder
4c2a3fb443
fix(test-runner): accept relative paths for outputDir ( #7149 )
...
fixes #7124
2021-06-15 13:39:07 -07:00
Pavel Feldman
9550106e1d
fix(test-runner): video: 'retain-on-failure' leaves empty folders behind ( #7125 )
2021-06-15 10:06:49 -07:00
Ross Wollman
195eab8787
feat(har): record remote IP:PORT and SSL details ( #6631 )
2021-06-15 09:48:08 +02:00
Dmitry Gozman
742cce3a1d
feat(test runner): configurable reportSlowTests ( #7120 )
...
Also splits tests by projects and reports them with nice relative paths.
2021-06-14 22:45:58 -07:00
Joel Einbinder
aa72b2b9bb
fix(pwt): max-failures should work with retries ( #7127 )
...
fixes #7112
2021-06-14 22:16:16 -07:00
Dmitry Gozman
2041aab010
fix(chromium): background pages on persistent close error ( #7118 )
...
This is a speculative fix that moves "background pages cleanup"
to `_didCloseInternal` so that it is only run once, but on both
context closure and browser closure.
Symptom from a flaky test:
```log
browserContext.close: page@18087c372d32819222707ca5e8fd1030 is sending "close" event after being disposed
at PageDispatcher._dispatchEvent (D:\a\playwright\playwright\src\dispatchers\dispatcher.ts:86:15)
at Page.<anonymous> (D:\a\playwright\playwright\src\dispatchers\pageDispatcher.ts:59:12)
at Page.emit (events.js:314:20)
at Page._didClose (D:\a\playwright\playwright\src\server\page.ts:220:10)
at CRPage.didClose (D:\a\playwright\playwright\src\server\chromium\crPage.ts:165:16)
at CRBrowserContext._onClosePersistent (D:\a\playwright\playwright\src\server\chromium\crBrowser.ts:476:24)
at CRBrowserContext.close (D:\a\playwright\playwright\src\server\browserContext.ts:288:20)
```
2021-06-14 21:55:55 -07:00
Pavel Feldman
970bb6a70d
feat(test-runner): allow setting pixel match threshold for project ( #7123 )
2021-06-14 21:52:10 -07:00
Dmitry Gozman
060f7ffa92
fix: specify the right apiName for artifact errors ( #7119 )
...
This produces errors like `download.saveAs: <error>` instead of `.saveAs: <error>`.
Drive-by: fix the flaky test.
2021-06-14 16:41:53 -07:00
Max Schmitt
ad5280e5cb
fix(trace-viewer): display trace without viewport ( #7101 )
2021-06-14 17:11:30 +02:00
Peng-Yu Chen
5f6d4a7b73
feat(download): adding a new Download._cancel method ( #6236 )
2021-06-12 22:23:22 +02:00
Andrey Lushnikov
8a8b3932f8
Revert "fix(test-runner): support passing slowMo option ( #6991 )" ( #7077 )
...
This reverts commit 178489d091 .
Reason for revert: this clashes with testrunner options.
2021-06-11 16:19:50 -07:00
Andrey Lushnikov
d6831df26f
feat: roll Firefox to r1271 ( #7067 )
...
References #7015
2021-06-11 10:50:02 -07:00
Yury Semikhatsky
c903b04c7a
feat(webkit): bump to 1499 ( #7001 )
2021-06-11 09:35:48 -07:00
Pavel Feldman
49a8f67c0f
fix(test-runner): resolve global hooks relative to the config dir ( #7061 )
2021-06-10 22:31:27 -07:00
Pavel Feldman
cbce7cbdec
fix(tracing): do not stall on dialogs ( #7059 )
2021-06-10 22:24:04 -07:00
Pavel Feldman
e4d93cd1f3
fix(video): do not fail when removing non-existent video ( #7060 )
2021-06-10 22:23:02 -07:00
Andrey Lushnikov
f52290d4ea
Revert "feat: add defaultTimeout browser context configuration option ( #6944 )" ( #7057 )
...
This reverts commit 617dfdef9e .
It turns out this might conflict with our bright testrunner future.
2021-06-10 18:38:56 -07:00
Amit Abershitz
617dfdef9e
feat: add defaultTimeout browser context configuration option ( #6944 )
...
Fixes #6940
Co-authored-by: Amit Abershitz <aabershitz@proofpoint.com>
Co-authored-by: Andrey Lushnikov <aslushnikov@gmail.com>
2021-06-10 18:10:20 -07:00
Pavel Feldman
3b1bae8a40
feat(codegen): allow generating tests ( #7049 )
2021-06-10 16:52:59 -07:00
Max Schmitt
05382c997b
fix(test-runner): do only match JS/TS files when collecting ( #7014 )
2021-06-10 16:41:57 +02:00
Andrey Lushnikov
3c7d2aae6a
fix: add best-effort support for MacOS beta versions ( #7003 )
...
Similarly to how we provide best-effort support for non-LTS ubuntu
versions, this patch adds support for beta versions of MacOS releases.
2021-06-09 14:58:20 -07:00
Max Schmitt
178489d091
fix(test-runner): support passing slowMo option ( #6991 )
...
Fixes #6984
Reverts #6967
2021-06-09 14:02:05 -07:00
Pavel Feldman
19d69b792d
fix(tracing): do not merge srcset urls ( #6995 )
...
Fixes #6982
2021-06-09 12:05:21 -07:00
Joel Einbinder
6788b9cf8c
fix(@playwright/test): plumbing ( #6992 )
...
`npx playwright test` should find and forward to the @playwright/test package.
2021-06-09 11:18:32 -07:00
Pavel Feldman
521153844a
docs: fix the nunit example ( #6978 )
2021-06-08 19:14:18 -07:00
Dmitry Gozman
ff3f951dc8
fix(firefox): race between markAsError and Page.ready ( #6976 )
...
When new page turns into download, we can have `_markAsError` followed
by the `Page.ready` signal and report the page twice (as an error and
as a real page). This is flaky and depends on whether `Page.ready` is
fast enough before the page closes or not.
Exposed by the "should report new window downloads" test.
2021-06-08 17:28:24 -07:00
Dmitry Gozman
6eeafc171b
fix(chromium): fix a race when intialization does not finish before page close ( #6975 )
...
This is exposed by the flaky "should report new window downloads" test.
In this test a new page is created, initialized and closed before initialization
finishes. If `lifecycleEventsEnabled` fails with "Target closed error",
we correctly ignore the initialization failure, but a single usage of the
failed promise with `.then` fails anyway.
2021-06-08 17:28:16 -07:00
Pavel Feldman
021f51cc1f
feat(trace): add a trace option into the test runner ( #6961 )
...
Co-authored-by: Andrey Lushnikov <aslushnikov@gmail.com>
2021-06-08 11:22:07 -07:00
Joel Einbinder
93f6b57ca5
feat(playwright-test): scan the world ( #6935 )
...
Running `npx playwright test` results in a cryptic error message that says to check `--help` for more information.
I started to rewrite it, but I think instead it would be much nicer if we just treated `npx playwright test` as an alias for `npx playwright test -c .`. There is a comment in the code that worries this will be slow because it will scan the world. However we need to support this case anyway for the tests-next-to-code pattern.
It looks like this should be fast because we ignore node_modules/.gitignore entries. If this is still too slow we should make it faster. If we can't make it faster we should throw a more specific error telling the user how to make it faster.
2021-06-08 11:02:16 -07:00
Andrey Lushnikov
53d68bdb38
feat: firefox is stable by default ( #6953 )
...
This patch:
- rolls Firefox to v1269 which is now a firefox-stable build.
- introduces a new channel, `firefox-beta`, for our internal needs.
Fixes #6817
2021-06-08 09:34:17 -07: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
Andrey Lushnikov
d0eaec368b
chore: clarify that we download Playwright browser builds ( #6938 )
2021-06-07 14:16:42 -07:00
Joel Einbinder
8960584b78
fix(chromium): drag and drop works in chromium ( #6207 )
...
Waiting for #6203 to percolate to the cdn. But this all works locally.
Fixes #1094
2021-06-07 10:27:34 -07:00
Andrey Lushnikov
cfd49b5c01
feat: support npx playwright install msedge ( #6861 )
2021-06-07 00:23:22 -07:00
Dmitry Gozman
b556ee6f5b
chore: brush up playwright-test types ( #6928 )
2021-06-06 20:18:47 -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
82041b2f74
test: roll to folio@0.4.0-alpha28 ( #6918 )
2021-06-04 20:54:58 -07:00
Dmitry Gozman
69b734629c
fix: various test-related fixes ( #6916 )
...
- Closing inspector window resumes the script.
- Replace FOLIO_WORKER_INDEX with TEST_WORKER_INDEX.
- Account for `@playwright/test` stack traces.
2021-06-04 18:43:54 -07:00
Dmitry Gozman
a83646684a
fix(tracing): error handling ( #6888 )
...
- Reject when ZipFile signals an error.
- Make sure snapshotter does not save trace events after stop().
- Await pending blob writes on stop().
2021-06-04 14:52:16 -07:00
Max Schmitt
ff3ad7a3d1
fix(android): to not call Browser.setDownloadBehavior ( #6913 )
2021-06-04 21:46:53 +02:00
Dmitry Gozman
233f1874da
feat(inspector): remove snapshots ( #6909 )
2021-06-04 10:47:19 -07:00
Yury Semikhatsky
a96491cbbb
feat(downloads): subscribe to download events in Browser domain instead of Page ( #6082 )
2021-06-04 09:54:29 -07:00
Dmitry Gozman
21b00d0bcc
test: roll to folio@0.4.0-alpha27 ( #6897 )
2021-06-03 22:06:59 -07:00
Dmitry Gozman
85786b1a11
feat(trace viewer): fix UI issues ( #6890 )
2021-06-03 21:52:29 -07:00
Dmitry Gozman
d4482f3ad3
chore: do not use Array.from in injected script ( #6876 )
...
This method is most often overridden by some bad polyfill that
does not work correctly and breaks `$eval` and `$$eval` methods.
As a best-effort fix, use a `[...iterable]` throughout the code.
2021-06-03 15:10:02 -07:00
Max Schmitt
064150f8dd
chore: use fs.promises API instead of promisify ( #6871 )
2021-06-03 18:55:33 +02:00
Dmitry Gozman
3de3a88930
feat(test): introduce npx playwright test ( #6816 )
2021-06-03 08:07:55 -07:00
Pavel Feldman
b2143a951b
chore: make tracing zero config ( #6859 )
2021-06-02 22:00:34 -07:00
Dmitry Gozman
837ee08a53
fix(waitForSelector): retry when context is gone during node adoption ( #6851 )
...
There is a small window after finishing the "rerunnable task" where
we adopt the node to the main world and navigation could destroy the context.
2021-06-02 20:17:24 -07:00
Max Schmitt
c09726b023
test: add tests for port-forwarding via playwrightclient ( #6860 )q
2021-06-03 02:19:01 +02:00
Max Schmitt
e91e49e533
feat(port-forwarding): add playwrightclient support ( #6786 )
2021-06-02 23:35:17 +02:00