Commit Graph

206 Commits

Author SHA1 Message Date
Yury Semikhatsky
aee6ba299a
chore: remove GridClient, run only page tests in service mode (#13566) 2022-04-14 15:30:04 -07:00
Wojciech Jureczka
7ba527c65f
chore: expose JSON Reporter types (#13241)
Resolves #13208
2022-04-14 13:55:29 -07:00
Dmitry Gozman
c86c2e8762
feat: restore toHaveScreenshot as experimental feature (#13549)
- Restore docs.
- Make `TestConfig.expect` generated.
- Allow experimental properties with "e" marker: `- foo e<float>`.
2022-04-14 13:22:42 -07:00
Dmitry Gozman
20dcc45afa
feat: support experimental doc entries (#13446)
feat: support experimental doc entries

- Params/options/members are marked as experimental in the docs.
- `experimental.d.ts` is generated that contains all types and
  includes experimental features.
- `experimental.d.ts` is references in our tests so that we
  can test experimental features.
- `fonts` option is restored as experimental.
2022-04-13 16:13:30 -07:00
Dmitry Gozman
2a97ad2487
test: check that we remove temp directories on process exit (#13494) 2022-04-12 12:28:33 -07:00
Ross Wollman
1af32e400f
feat(test-runner): introduce GlobalInfo (#13083) 2022-04-08 13:22:14 -07:00
Pavel Feldman
e79b90f454
chore: use utils via index export (5) (#13413) 2022-04-07 20:18:22 -07:00
Dmitry Gozman
155bb7fcae
fix: wait for cleanup on double SIGINT (#13411)
This is a speculative fix to leftover tmp directories.
When users issues SIGINT twice, we enter `gracefullyClose()`
twice, and shortcut the second time. It turns out, we do
not wait for directories removal.

Note: it is unknown how often we reach this codepath in practice.
2022-04-07 19:20:54 -07:00
Pavel Feldman
40d5e3a3c9
chore: use utils via index export (3) (#13403) 2022-04-07 13:55:44 -07:00
Pavel Feldman
bde7bf4ea9
chore: move registry & dispatchers to under server (#13370) 2022-04-06 22:21:27 -07:00
Pavel Feldman
5ae2017a5b
chore: always import type (#13365) 2022-04-06 14:57:14 -07:00
Pavel Feldman
6ca58e18cb
fix(electron): better support for custom schemas (#13329) 2022-04-05 16:10:12 -07:00
Ross Wollman
16efbdef98
chore: remove/rename FullConfig._attachments (#13233)
This was originally introduced in #12734.

It will be replaced with GlobalInfo (#13083), but not before the 1.21
release.
2022-04-01 12:36:05 -07:00
Pavel Feldman
5e17ed137b
fix(html-report): only invoke git once (#13165) 2022-03-29 15:49:58 -07:00
Pavel Feldman
a58707b8a6
chore: group tests under tests/ (2) (#13082) 2022-03-25 23:09:02 -07:00
Ross Wollman
541fb39a51
feat(html-reporter): add report context header (#12734)
Resolves #11318.

* Adds `TestConfig.attachments` public API. (We opted to not implement an analog to the async `TestInfo.attach(…)` API.)
* Adds `TestConfig.attachments` to common reporters.
* Dogfoods some git and CI-info inference to generate useful atttachments
* Updates HTML Reporter to include a side bar to present a pre-defined set of attachments (a.k.a git/commit context sidebar)

Here's what it looks like:

<img width="1738" alt="Screen Shot 2022-03-21 at 3 23 28 PM" src="https://user-images.githubusercontent.com/11915034/159373291-8b937d30-fba3-472a-853a-766018f6b3e2.png">

See `tests/playwright-test/reporter-html.spec.ts` for an example of usage (for dogfood-ing only). In the future, if this becomes user-facing, there the Global Setup bit would likely become unnecessary (as would interaction with attachments array); there would likely just be a nice top-level config and/or CLI flag to enable collecting of info.
2022-03-22 16:28:04 -07:00
Ross Wollman
72b95b9ffa
chore: dogfood dotenv (#12673)
Use a top-level .env file to control the internal testing setup.

This allows for easy manipulation of environment variables regardless
of your setup (VSCode Extension, CLI, etc.).
2022-03-11 15:12:25 -08:00
Andrey Lushnikov
e8ad7eb3f2
browser(firefox): roll Firefox to M97 (#12574)
Firefox 98 doesn't work on Ubuntu aarch64 yet.

https://github.com/microsoft/playwright/issues/12557
2022-03-07 16:16:42 -08:00
Pavel Feldman
4b19d59ec5
feat(test): introduce fully parallel mode (#12446) 2022-03-01 18:12:21 -08:00
Andrey Lushnikov
1a7a3bf99d
chore: fix types for tests (#12429) 2022-03-01 01:32:40 -08:00
Andrey Lushnikov
66eda836c9
browser(ff-beta): roll Firefox-Beta to 98b10 (#12421)
Firefox reverted the third-party cookies recently:
https://bugzilla.mozilla.org/show_bug.cgi?id=1751435

Thus changes in tests.

References #12225
2022-03-01 00:17:33 -08:00
Dmitry Gozman
edac84d072
feat(remote): send browser/channel/headless in a header (#12205) 2022-02-18 07:54:33 -08:00
Dmitry Gozman
47cc7c4ae8
chore: refactor internal cli commands to use commander (#12146) 2022-02-16 09:54:12 -08:00
Dmitry Gozman
66b5cf5ae1
feat(remote): make PlaywrightServer work with browserType.connect (#11849)
This changes PlaywrigtServer to serve connections like `ws://localhost:3333/?browser=chromium`:
- launches the browser;
- talks `browserType.connect`-style protocol over websocket;
- compatible with `connectOptions` fixture.

```js
await playwright.chromium.connect({ wsEndpoint: 'ws://localhost:3333/?browser=chrome' });
```
2022-02-10 16:36:23 -08:00
Dmitry Gozman
284f76357f
test: unflake browsertype-connect.spec (#11994)
Consider the scenario:
- First test starts a remote server, connects to it and does not close.
- Remote server fixture stops the server in teardown. Meanwhile,
  the connected browser did not get notified about disconnect just yet.
- Second test starts and sets up tracing in the old connected browser.
- Tracing fails because the browser now realises it has disconnected.
2022-02-09 17:00:33 -08:00
Max Schmitt
c752b28516
chore: pin production dependencies (#11793) 2022-02-02 11:14:41 +01:00
Caio Agiani
b6b60decdf
fix: typos (#11789) 2022-02-01 11:09:41 -08:00
Dmitry Gozman
30f3cbd6da
fix(fixtures): make sure defaultLaunchOptions are always there (#11713) 2022-01-28 10:51:55 -08:00
Pavel Feldman
29a84b2df8
chore: allow pre-processing scripts (#11702) 2022-01-27 14:32:23 -08:00
Dmitry Gozman
b1fbc4fdbe
fix(test runner): resolve tsconfig for each file (#11662)
This allows us to properly handle path mappings
that are not too ambiguous.
2022-01-26 18:28:42 -08:00
Pavel Feldman
db0cda9df5
chore: rename default config to match extension pattern (#11446) 2022-01-18 13:31:12 -08:00
Pavel Feldman
8ecf581b45
chore: focus by line should override only (#11427) 2022-01-16 08:47:09 -08:00
Pavel Feldman
373042ed89
chore: don't allow importing @playwright/test twice (#11218) 2022-01-06 09:29:05 -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
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
Yury Semikhatsky
976af162b0
feat(tracing): pack sources to trace on the driver side (#10815) 2021-12-09 17:21:17 -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
Dmitry Gozman
04dc935265
test: do not print output from child processes in skipped tests (#10422) 2021-11-18 14:35:51 -08:00
Andrey Lushnikov
dc89738233
test: bump expect timeout (#10384)
This should make trace viewer tests less flaky.

References #10383
2021-11-17 11:56:24 -08:00
Max Schmitt
3a64da7a54
fix: do not show taskkill.exe output (#10244) 2021-11-11 18:32:22 +01:00
Pavel Feldman
8991bbde33
feat(html): live filtering, opt-out from auto-open (#9889) 2021-10-29 16:24:08 -07:00
Max Schmitt
21c4435060
test: do kill testProcesses accordingly (#9818)
* test: do kill testProcesses accordingly

* fix it
2021-10-28 23:08:04 +02:00
Pavel Feldman
2e4722d460
test: migrate to upstream fixtures (#9835) 2021-10-28 08:31:30 -07:00
Pavel Feldman
16afb5064f
test: remove browserOptions (#9829) 2021-10-27 19:00:06 -07:00
Pavel Feldman
31faa7d9a7
chore: sort out base fixtures (#9809) 2021-10-27 08:28:53 -07:00
Joel Einbinder
c8addef03a
fix(monorepo): export package.json from every package (#9803) 2021-10-26 18:41:18 -04: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
Joel Einbinder
f2888395a6
fix: support even older node 12 (#9718) 2021-10-22 15:59:52 -04:00
Pavel Feldman
2b9d7815b2
chore: enable html report by default (#9639) 2021-10-19 21:31:59 -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
Pavel Feldman
e37660b068
feat(api): expose step location (#9602) 2021-10-18 21:06:18 -07:00
Andrey Lushnikov
01c702adbb
chore: move "service" mode tests to experimental grid (#9531)
This patch moves service tests to use experimental grid.
Test changes:
- `proxy.spec.ts` - proxy setup is not supported at all in service mode.
  This is because we already use proxy for browsers to properly resolve
  localhost.
- `har.spec.ts` - tests disabled since connection port is different.
2021-10-15 16:11:53 -07:00
Pavel Feldman
75cfe5d1f5
chore: start adding html runner e2e tests (#9518) 2021-10-14 15:48:05 -07:00
Max Schmitt
96be17463e
feat(codgen): support positioned clicks in a canvas (#9503) 2021-10-14 17:37:29 +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
Joel Einbinder
c89d5a50dd
chore: migrate to monorepo (#9421) 2021-10-11 16:52:17 +02:00
Max Schmitt
b10140d9c2
chore: add reuse context to internal test suite (#9359) 2021-10-07 23:01:08 +02:00
Pavel Feldman
bc71d20d0f
feat(request): add global request fixture (#9332) 2021-10-06 10:09:27 -07:00
Pavel Feldman
913821f675
chore: roll Electron to 12.2.1 (#9271) 2021-10-01 19:40:47 -07:00
Dmitry Gozman
5633520f45
fix(selenium connect): register in gracefullyCloseAll for driver cleanup (#9218)
Otherwise, killing the driver does not cleanup sessions in the grid.
2021-09-29 14:54:24 -07:00
Max Schmitt
cd22072685
chore: enable object-curly-spacing in ESLint (#9168) 2021-09-27 18:58:08 +02:00
Pavel Feldman
241411ad42
chore: render expect in trace viewer (#9141) 2021-09-27 09:19:59 -07:00
Dmitry Gozman
2afe76d86d
feat(launch): connect to process.env.SELENIUM_REMOTE_URL instead of local launch (#9056) 2021-09-22 21:13:32 -07:00
Dmitry Gozman
018467911b
test: introduce some common test fixtures (#9060) 2021-09-21 16:24:48 -07:00
Dmitry Gozman
43213614a1
fix(test runner): after hooks step should not be nested (#8969) 2021-09-16 15:51:27 -07:00
Pavel Feldman
14bc663742
chrome: don't nest pw:api steps (#8932) 2021-09-15 11:34:23 -07:00
Pavel Feldman
aa76cb5610
fix(tracing): fix tests via tracking context close state (#8906) 2021-09-13 21:12:36 -07:00
Pavel Feldman
1925c85dfb
feat(report): render attachment as a part of failure (#8903) 2021-09-13 18:07:40 -07:00
Pavel Feldman
b76e993951
chore: remove log from htmlreport (#8898) 2021-09-13 18:07:15 -07:00
Pavel Feldman
665143d629
chore(report): don't generate file per test (#8822) 2021-09-09 17:35:31 -07:00
Yury Semikhatsky
81ae790288
feat(fetch): support ignoreHTTPSErrors (#8795) 2021-09-08 20:32:52 -07:00
Dmitry Gozman
e2b092c1a0
feat(html reporter): show log for pw:api and expect steps (#8692) 2021-09-03 13:08:17 -07:00
Dmitry Gozman
2b4a93972d
test: use ToT test runner for non-test-runner tests (#8671) 2021-09-03 11:22:25 -07:00
Dmitry Gozman
0f34cfe339
test: roll test runner to 1.15.0-next-1630432230000 (#8599) 2021-08-31 17:06:32 -07:00
Dmitry Gozman
bf13259fa9
test: roll test runner to aug-27 (#8523) 2021-08-27 16:26:51 -07:00
Max Schmitt
8189de42cf
test: fix package installation tests (#8430) 2021-08-25 13:34:54 +02:00
Dmitry Gozman
7818f5fa0b
test: add a tracing bot that collects a trace for most contexts (#8316) 2021-08-19 19:09:19 -07:00
Yury Semikhatsky
356d69ae3f
test: make borwsercontext-proxy tests use test proxy server (#8318) 2021-08-19 13:34:32 -07:00
Yury Semikhatsky
d42169aba1
test: proxy server fixture, new test for https via http proxy (#8299) 2021-08-19 07:36:03 -07:00
Pavel Feldman
4d7956c70b
chore: roll test runner to ToT (#8291) 2021-08-18 14:32:36 -07:00
Andrey Lushnikov
45f51239a6
chore: roll TestRunner to tip-of-tree (#8168) 2021-08-12 10:03:23 -07:00
Yury Semikhatsky
75981bc0aa
fix(tests): do not throw if page did not produce video (#8112)
Fixes #8103
2021-08-10 01:24:14 -07:00
Pavel Feldman
40fb9d85e0
feat(test-result): render image diff (#8061) 2021-08-07 15:47:03 -07:00
Pavel Feldman
559d6242f0
chore: roll test runner to ToT (#8063) 2021-08-07 02:11:01 -07:00
Pavel Feldman
efb4af8489
chore: roll test runner to ToT (#8025) 2021-08-06 16:58:08 -07:00
Pavel Feldman
a8d404cd29
feat(test-runner): basic html reporter (#7994) 2021-08-05 13:36:47 -07: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
Pavel Feldman
542019f3a1
chore: roll test runner to ToT (#7977) 2021-08-03 22:19:27 -07:00
Pavel Feldman
5803035c1b
feat(test-runner): introduce steps (#7952) 2021-08-02 17:17:20 -07:00
Pavel Feldman
07c1c4bfb1
chore: roll test runner to tot (#7912) 2021-07-29 09:42:42 -07:00
Pavel Feldman
b8cfce3b9d
chore: roll test runner to ToT (#7896) 2021-07-28 17:33:14 -07:00
Dmitry Gozman
642d6d4459
test: roll test-runner to 1.13.0-next-1626706866000 (#7719) 2021-07-19 09:10:34 -07:00
Max Schmitt
bc2f161a55
chore: roll test-runner to 1.13.0-next-1625774143000 (#7519) 2021-07-08 23:36:11 -07:00
Max Schmitt
b846ddda04
feat(download): introduce Download.cancel (#7462) 2021-07-06 09:38:50 +02:00
Max Schmitt
701624c484
chore: roll playwright-test to 1.13.0-next-1624575246000 (#7291) 2021-06-25 22:53:14 +02:00
Max Schmitt
4c6deaa449
test: added tests for WebSocket over Socks proxy (#7235) 2021-06-24 18:50:16 +02:00
Yury Semikhatsky
c0cd2d4579
feat: response interception (#7122) 2021-06-18 11:04:48 -07:00
Pavel Feldman
82a50b0e1d
fix(test-runner): property handle artifacts in context of preserveOutput (#7181) 2021-06-16 16:05:30 -07:00