Commit graph

2179 commits

Author SHA1 Message Date
Dmitry Gozman ed9b42a92d
feat(test runner): collect test error from worker teardown (#9190)
When the test fails (usually with timeout), we wait until all hooks are run
and worker scope is teared down before reporting test end result.

This allows us to collect any error details populated by teardown
in addition to the "timed out" message.
2021-09-28 10:56:50 -07:00
Dmitry Gozman 9a94ccaf0f
chore(test runner): remove DonePayload.failedTestId (#9186)
We now track failed tests on the dispatcher side.
This is a preparation for capturing more errors from
afterAll and worker teardown and attributing them to the last test.
2021-09-27 21:38:19 -07:00
Dmitry Gozman fa536786f2
fix(test runner): proper serial mode with beforeAll/afterAll failures (#9183) 2021-09-27 15:58:26 -07:00
Dmitry Gozman 8dc8777ab4
feat(expect): toContainText(array) (#9160)
This matches when each expected item from the array
is matched to one of the resolved elements, in order.
Note this performs both "sub-array" and "substring" matching.

Drive-by: documentation fixes.
Drive-by: added "selector resolved to 3 elements" log line
when expecting arrays.
2021-09-27 11:14:35 -07:00
Max Schmitt cd22072685
chore: enable object-curly-spacing in ESLint (#9168) 2021-09-27 18:58:08 +02:00
github-actions[bot] 03376ed44b
feat(chromium): roll to r925110 (#9175)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2021-09-27 18:26:09 +02:00
Pavel Feldman 241411ad42
chore: render expect in trace viewer (#9141) 2021-09-27 09:19:59 -07:00
Max Schmitt 4573ce0cf8
chore(test-runner): launch -> webServer (#9167) 2021-09-27 11:32:57 +02:00
Dmitry Gozman ee25fefb62
chore: remove FatalDOMError (#9119)
We can now throw stackless errors instead.
Also fixed stackless errors on Firefox.
2021-09-24 20:51:09 -07:00
Dmitry Gozman f4aaebfba0
fix(expect): produce "waiting for selector" log, corner cases (#9140) 2021-09-24 18:55:45 -07:00
Yury Semikhatsky 45b365d958
fix: increase recent logs buffer (#9143) 2021-09-24 17:28:06 -07:00
Pavel Feldman db6c55af51
chore: add a test for the log scale polling (#9136) 2021-09-24 12:54:33 -07:00
Pavel Feldman 1db41c330a
chore: migrate remaining expect to protocol (#9121) 2021-09-24 11:06:30 -07:00
Max Schmitt 4eede61f79
feat(chromium): roll to 924544 (#9131) 2021-09-24 18:13:12 +02:00
Pavel Feldman 0908dc98c8
chore: migrate expect(locator).toMatchText to protocol (#9117) 2021-09-23 16:46:46 -07:00
Joel Einbinder 40ae28e3bb
feat(test runner): add some fixture debugging (#8918) 2021-09-23 11:56:39 -04:00
Joel Einbinder 219d00d17b
chore(typescript): bump typescript to v4.4.3 (#9087) 2021-09-23 11:55:44 -04:00
Pavel Feldman e03db79682
fix(firefox): use global eval in injected script (#9101) 2021-09-22 21:49:14 -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
Pavel Feldman de4aa50d55
chore: simplify dom tasks (#9089) 2021-09-22 17:17:49 -07:00
Dmitry Gozman 568ec05a97
fix(junit): produce a single system-out entry (#9091)
Instead of multiple `system-out` entries we produce a single one
with concatenated content. This is compatible with various junit xml
parsers in the wild.
2021-09-22 15:28:57 -07:00
Dmitry Gozman f0d23b5d4d
fix(css selector): absolutize relative CSS selectors (#9088)
Selectors like `> div` are replaced by `:scope > div`,
which is useful for combining them with parent selectors.
This is a part of CSS Level 4 spec.
2021-09-22 14:13:00 -07:00
Yury Semikhatsky 79eb7744bc
feat(fetch): support options in playwright._newRequest (#9061) 2021-09-22 12:44:22 -07:00
Joel Einbinder c673ef5330
chore(registry): refactor logic of what browsers to download to top level (#9078) 2021-09-22 11:43:13 -07:00
Dmitry Gozman e85a3a5a41
fix(page.content): throw a nice error when navigation intervenes (#9080) 2021-09-22 10:40:15 -07:00
Max Schmitt 449a593050
fix(fetch): be compatible with a 0 timeout (#9071) 2021-09-22 10:30:56 -07:00
Max Schmitt d354d14fb9
chore: move Frame.waitForTimeout to the server side (#9053) 2021-09-21 22:06:14 +02:00
Max Schmitt f9c5279c3a
fix(test-runner): toHaveURL respect baseURL (#9050) 2021-09-21 21:41:24 +02:00
Yury Semikhatsky 9b0e0c2273
fix: restore support for slowmo connect option (#9038) 2021-09-21 09:12:44 -07:00
Dmitry Gozman 5200134749
chore: improve http request utilities (#9031) 2021-09-20 13:50:26 -07:00
github-actions[bot] e5b8c02c93
feat(chromium): roll to r922811 (#9024)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2021-09-20 15:32:32 +02:00
github-actions[bot] d61148c39a
feat(webkit): roll to r1548 (#8996)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2021-09-18 07:50:42 +02:00
Dmitry Gozman b575c0e2e6
fix(actions): do not throw evaluate protocol errors from actions (#8997)
When using `evaluate` or `evaluateHandle` internally during actions
like `click`, we can sometimes get protocol errors if page
navigates. In this case, we throw the protocol error right away.

Instead, we can treat such a protocol error similar to "detached"
error and retry in the new execution context.
2021-09-17 22:18:00 -07:00
Yury Semikhatsky cc15227327
fix: do not dedup header values (#8998) 2021-09-17 17:19:13 -07:00
Pavel Feldman 63ff405e6e
fix(inspector): stop on all snapshottable actions (#8990) 2021-09-17 15:24:15 -07:00
Yury Semikhatsky e359e95fcc
chore(fetch): fix typo (#8991) 2021-09-17 12:43:00 -07:00
Yury Semikhatsky 43a690c204
feat(fetch): set content-length header if post data is present (#8979) 2021-09-17 09:00:18 -07:00
github-actions[bot] 8dd0387641
feat(chromium): roll to r922354 (#8987)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2021-09-17 16:14:41 +02:00
Yury Semikhatsky 806a71a4f0
feat(fetch): support form data and json encodings (#8975) 2021-09-16 17:48:43 -07:00
Dmitry Gozman 43213614a1
fix(test runner): after hooks step should not be nested (#8969) 2021-09-16 15:51:27 -07:00
Joel Einbinder eafba43e15
fix(snapshot): render adoptedStyleSheets used in more than one node (#8886)
.
2021-09-16 09:37:38 -04:00
Andrey Lushnikov 4f762ba90a
feat: introduce experimental general-purpose grid (#8941)
This patch adds a general-purpose grid framework to parallelize
Playwright across multiple agents.

This patch adds two CLI commands to manage grid:

- `npx playwright experimental-grid-server` - to launch grid
- `npx playwrigth experimental-grid-agent` - to launch agent in a host
  environment.

Grid server accepts an `--agent-factory` argument. A simple
`factory.js` might look like this:

```js
const child_process = require('child_process');

module.exports = {
  name: 'My Simple Factory',
  capacity: Infinity, // How many workers launch per agent
  timeout: 10_000, // 10 seconds timeout to create agent
  launch: ({agentId, gridURL, playwrightVersion}) => child_process.spawn(`npx`, [
    'playwright'
    'experimental-grid-agent',
    '--grid-url', gridURL,
    '--agent-id', agentId,
  ], {
    cwd: __dirname,
    shell: true,
    stdio: 'inherit',
  }),
};
```

With this `factory.js`, grid server could be launched like this:

```bash
npx playwright experimental-grid-server --factory=./factory.js
```

Once launched, it could be used with Playwright Test using env variable:

```bash
PW_GRID=http://localhost:3000 npx playwright test
```
2021-09-16 01:20:36 -07:00
Dmitry Gozman 5379b2dcba
fix(test runner): account for errors with inconsistent stack/message (#8950) 2021-09-15 21:28:36 -07:00
Dmitry Gozman 9b08871b4d
fix(test runner): print flaky tests summary in yellow, not in red (#8951) 2021-09-15 16:28:57 -07:00
Yury Semikhatsky 2380b07f30
feat(fetch): introduce FetchRequest.dispose, fulfill with global fetch (#8945) 2021-09-15 14:02:55 -07:00
Darrell Breeden d82cb9a2ff
feat: addition of tags to JSON reporter output (#8920) 2021-09-15 12:30:22 -07:00
Pavel Feldman fc972fcadd
fix: center image diff (#8947) 2021-09-15 12:26:00 -07:00
Max Schmitt 131239569d
feat(test-runner): add --debug CLI flag (#8938) 2021-09-15 21:19:31 +02:00
Max Schmitt 96355b3a7a
chore: hide npx playwright debug command (#8946) 2021-09-15 21:19:16 +02:00
Pavel Feldman 14bc663742
chrome: don't nest pw:api steps (#8932) 2021-09-15 11:34:23 -07:00