Max Schmitt
96a9a26f9f
fix: strict mode on page.* methods on context level ( #8324 )
2021-08-19 23:08:28 +02:00
Max Schmitt
ddcdb6d413
chore(protocol): do client hello instead of server hello ( #8019 )
2021-08-19 17:31:14 +02:00
Dmitry Gozman
f06e7b91fb
fix(tracing): serialize resource writes against trace export ( #8296 )
...
Inlining TraceSnapshotter makes it easier to serialize writes and removes no-op glue.
We also stop writing the same resource twice.
2021-08-19 07:26:24 -07:00
Andrey Lushnikov
d9206ebefc
chore: pretend world is win64 ( #8306 )
...
It looks like we have a very small share of users on 32-bit windows.
This is a tiny change that stops Playwright from using 32-bit windows
binaries.
References #8045
2021-08-19 06:09:04 -07:00
Dmitry Gozman
ee9863387b
feat(html report): show video inline ( #8293 )
2021-08-18 14:30:55 -07:00
Pavel Feldman
6ef76e333e
feat(strict): add context-level selector strictness ( #8290 )
2021-08-18 12:51:45 -07:00
Dmitry Gozman
8d81890e47
feat(codegen): support --save-trace option ( #8267 )
2021-08-18 07:27:45 -07:00
Pavel Feldman
710cec80a0
feat(test-runner): render step titles ( #8270 )
2021-08-17 16:41:36 -07:00
Pavel Feldman
97ba4f22f3
feat(test-runner): report nested steps ( #8266 )
2021-08-17 13:57:26 -07:00
Joel Einbinder
de4464cb9a
fix(expect): highlight diff in toHaveText ( #8262 )
2021-08-17 16:56:21 -04:00
Dmitry Gozman
99993e173b
fix(snapshots): account for malformed headers ( #8241 )
...
When browser receives multiple header values for the same header name,
we present them as LF-separated value. This is not considered valid in
Node, so we should split by LF when serving a snapshot.
There more invalid characters in headers, so just in case we try/catch it.
2021-08-16 17:40:46 -07:00
Dmitry Gozman
246495f705
fix(tracing): improve captureStackTrace ( #8236 )
...
- Simplify by only considering client/ vs non-client/
- Fix stack traces when calling from other playwright code, e.g. from the cli
- Account for re-entrant calls that happen when
instrumenting context creation/desctruction
- Add tests
- Fix StackTraceView on Windows
2021-08-16 17:06:38 -07:00
Dmitry Gozman
2aff06ec73
fix(test runner): make sure tracing is not running on non-retries ( #8232 )
...
When sharing a context between tests and using `'on-first-retry'` we
could end up with tracing still running in non-retried tests. That's
extra overhead without a reason.
2021-08-16 16:46:35 -07:00
Yury Semikhatsky
8cc4140933
fix: throw if intercepted response fails ( #8195 )
2021-08-16 16:40:47 -07:00
Bùi Gia Thịnh
1e8e547023
fix(devices): typo in device name Desktop Edge ( #8233 )
2021-08-16 22:38:26 +02:00
Ross Wollman
101662765c
api(cdp): newCDPSession accepts frames, too ( #8157 )
...
Without this, Playwright's CDP feature leaves unreachable
targets (namely OOPIFs).
This change allows for more advanced experimentation in user-land
without relying on out-of-band CDP connections and clients.
Now you can, for example, call `DOM.getDocument` on the
page OR main frame, observe there is an iframe node with
no `contentDocument` (i.e. OOPIF), make note of the referenced
`frameId`, and then iterate of page.frames() calling `Target.getInfo`
on each to link the Playwright Frame with the CDP `frameId` and
then recurse.
Relates #8113
2021-08-16 12:49:10 -07:00
Yury Semikhatsky
90385a7941
browser(firefox): failure response interception ( #8194 )
2021-08-16 09:36:28 -07:00
Yury Semikhatsky
39f663834f
test: intercepted response status line ( #8189 )
2021-08-13 16:28:42 -07:00
Dmitry Gozman
5327b8ca6d
feat(firefox): bump firefox to 1283, firefox-beta to 1277 ( #8184 )
2021-08-13 08:29:25 -07:00
Dmitry Gozman
d32d50a906
fix(test runner): make sure we always teardown all fixtures ( #8158 )
...
Even if one of the fixtures throws, we should teardown all of them
so that we can run afterAll hooks.
2021-08-12 09:08:56 -07:00
Pavel Feldman
f3b35b2bbd
fix(trace-viewer): restore action error icon ( #8163 )
...
Fixes #8051
2021-08-12 08:41:34 -07:00
Andrey Lushnikov
819287cc0e
fix: do not show the "accept incoming network connections" dialog ( #8162 )
...
The dialog is provoked by a [MediaRouter chromium component](https://chromium.googlesource.com/chromium/src/+/HEAD/docs/mac_build_instructions.md#avoiding-the-incoming-network-connections-dialog )
In general, this is a very narrow functionality that should be safe
to disable to not affect majority of users on MacOS.
Fixes #7937
2021-08-12 08:33:02 -07:00
Pavel Feldman
d2d71c4cdb
fix(reporter): group fixture initialization under before hooks ( #8072 )
2021-08-12 07:58:00 -07:00
Dmitry Gozman
44cdda43fe
feat(test runner): show stdio for failures in terminal reporters ( #8150 )
2021-08-11 16:44:19 -07:00
Yury Semikhatsky
59df541de5
fix: fulfill intercepted response with empty body ( #8151 )
2021-08-11 14:47:05 -07:00
Yury Semikhatsky
41770bf444
feat(webkit): response interception after redirects ( #8017 )
2021-08-11 11:14:50 -07:00
Pavel Feldman
1d4e2fe98c
feat(nth): make nth and visible selectors public ( #8142 )
2021-08-11 11:06:09 -07:00
Andrey Lushnikov
aaf565c9ce
chore: update webkit version to 15.0 ( #8143 )
2021-08-11 10:48:21 -07:00
Andrey Lushnikov
7c017a6c1f
feat(firefox): roll firefox to M91 ( #8137 )
2021-08-11 10:13:09 -07:00
Yury Semikhatsky
252238f25c
feat(webkit): bump to 1530 ( #7991 )
2021-08-11 08:56:35 -07:00
Dmitry Gozman
a5e0965087
feat(test runner): implement test.describe.serial ( #8132 )
2021-08-10 21:26:45 -07:00
Joel Einbinder
64da74fba8
feat(test-runner): allow non-ascii characters in the output dir path ( #8093 )
2021-08-10 21:24:35 -07:00
Pavel Feldman
21b510c6e7
chore(tracing): remove resource id ( #8131 )
2021-08-10 21:23:31 -07:00
Dmitry Gozman
708fa43f03
fix(tracing): clear recording state at the end of tracing.stop ( #8120 )
...
This ensures that any tracing operations can access the recording state.
When stopping, we await for all operations to finish and then clear the state.
To avoid reentrancy, a new flag `isStopping` is introduced.
2021-08-10 17:36:06 -07:00
Andrey Lushnikov
4975f4179e
feat: make React and Vue selectors experimental ( #8106 )
2021-08-10 17:21:16 -07:00
Andrey Lushnikov
792986c92d
feat: support props matching in react and vue selectors ( #8104 )
2021-08-10 17:10:14 -07:00
Pavel Feldman
b800c1d35c
feat(reporter): render attachments in html report ( #8125 )
2021-08-10 17:06:25 -07:00
Pavel Feldman
76150f1bcb
chore(tracing): remove proactive snapshotSizes caching ( #8126 )
2021-08-10 17:06:14 -07:00
Dmitry Gozman
c9c1ea6546
fix(test runner): disallow use(workerFixture) in describes ( #8119 )
...
Using a worker fixture forces a new worker. This might be unexpected
when part of the test file runs in one worker, and another runs
in another worker. Top-level use of worker fixtures is still fine.
2021-08-10 16:32:32 -07:00
Pavel Feldman
a9e1916672
chore(tracing): do not produce cached resources maps ( #8110 )
2021-08-10 12:08:19 -07:00
Dmitry Gozman
9d6c7cdf20
fix(test runner): ensure we run after hooks after failures ( #8102 )
2021-08-10 10:54:05 -07:00
Dmitry Gozman
2744cd6c9a
feat(test runner): remove createContext fixture ( #8109 )
...
We can now use `browser.newContext()` or `browser.newPage()` instead.
2021-08-10 09:26:36 -07:00
Dmitry Gozman
3bf3318350
fix(test runner): make sure options, trace and screenshot apply to all contexts ( #8083 )
...
- Uses some auto fixtures to set default options and instrumentation on BrowserType.
- Moves screenshot, trace and video to worker-scoped fixtures.
- Throws in page/context when used from beforeAll/afterAll.
- Plumbs around BrowserType to be accessible from Browser and BrowserContext.
2021-08-09 18:09:11 -07:00
Pavel Feldman
8eac1e96d3
chore: add extensions to the trace resources ( #8105 )
2021-08-09 16:36:24 -07:00
Dmitry Gozman
e638c4597f
fix(test runner): do not swallow afterAll failure ( #8099 )
2021-08-09 14:21:53 -07:00
Andrey Lushnikov
29f7dfa3ee
feat(chromium): roll Chromium to M94 ( #8047 )
2021-08-09 13:57:17 -07:00
Dmitry Gozman
87548f94c1
feat(test runner): support test fixtures in beforeAll/afterAll ( #8082 )
...
Each hook gets its own test scope. This is not too useful for
object fixtures like `page` (although one can use a page in
`beforeAll` to save storage state), but much more useful for option
fixtures like `viewport`.
2021-08-09 13:26:33 -07:00
Dmitry Gozman
41949e559e
Revert "feat(test runner): file scope fixtures ( #7969 )" ( #8081 )
...
This reverts commit 1bbf86d060 ,
leaving small improvements around.
2021-08-09 12:33:16 -07:00
Andrey Lushnikov
f455b6edc0
feat: introduce vue selector engine ( #8070 )
...
This patch adds support for the `vue` selector engine that allows
selecting DOM elements based on the component name.
> **NOTE**: `vue` engine supports Vue2 and Vue2.
References #7189
2021-08-09 01:34:52 -07:00
Pavel Feldman
290f601dae
feat(expect): introduce explicit default async expect timeout ( #8071 )
2021-08-07 22:08:56 -07:00
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