Commit graph

599 commits

Author SHA1 Message Date
Pavel Feldman f63af830de
feat(test-runner): allow parametrized tests that don't extend base (#9301) 2021-10-04 17:16:33 -07:00
Pavel Feldman 6e803f7186
fix(route): allow allHeaders call within route (#9300) 2021-10-04 16:10:16 -07:00
Samuel Maddock 1b83f3eaec
fix(electron): browser window ids out of sync (#8759) 2021-10-04 13:19:57 -07:00
Yury Semikhatsky c516729544
fix(interception): make set-cookie work in chromium (#9299) 2021-10-04 13:19:05 -07:00
Sidharth Vinod f4cbd9d574
test: remove checking duration in github reporter to reduce flakiness 2021-10-04 15:53:26 +02:00
Sidharth Vinod be30f9f1c4
feat(test-runner): Add GitHub Actions reporter (#9191) 2021-10-04 10:32:56 +02:00
Pavel Feldman 913821f675
chore: roll Electron to 12.2.1 (#9271) 2021-10-01 19:40:47 -07:00
Dmitry Gozman edf07949be
test: use separate Playwright instance to automate inspector (#9270)
This will prevent inspector from picking up test actions.
2021-10-01 17:06:13 -07:00
Yury Semikhatsky 1b4adfb916
fix(webkit): deduce response mime type from content-type (#9264) 2021-10-01 13:04:03 -07:00
Yury Semikhatsky 235eaca34a
fix(fetch): use data, form and multipart for different post data (#9248) 2021-10-01 12:11:33 -07:00
Nick Partridge b126a5685b
feat: add path option to toMatchSnapshot (#9156) 2021-10-01 09:15:44 -07:00
Max Schmitt 1302e10637
test: fix 'should fulfill with fetch result and overrides' test (#9252) 2021-10-01 09:47:04 +02:00
Max Schmitt e674d873a3
feat(test-runner): add reuse context mode to share a single context between tests (#9115) 2021-10-01 09:16:03 +02:00
Dmitry Gozman 5e3ad63b42
fix(test runner): do not write missing snapshot until the last retry (#9246)
This prevents future retries from passing because of the actual
snapshot being written.

In theory, we can avoid running the retry since it should fail anyway.
However, this brings problems, for example in the `describe.serial` mode
where running a test also has some side effects and so it should not be
skipped. Since running a test without a snapshot is rare, it should be
fine to retry it.
2021-09-30 16:44:52 -07:00
Sidharth Vinod fcb7d2b15a
feat(reporters): Add error position to JSON Report (#9151) 2021-09-30 14:18:36 -07:00
Yury Semikhatsky 4e372dccb5
feat(fetch): import/export storageState (#9244) 2021-09-30 14:14:29 -07:00
Max Schmitt a1d0878fa1
fix: allow binary response interception (#9236) 2021-09-30 23:12:33 +02:00
Pavel Feldman a1558d5c70
test(cookies): add a test for SameSite=None cookies (#9242) 2021-09-30 13:56:20 -07:00
Andrey Lushnikov c63348bd03
feat(webkit): roll WebKit to 1550 (#9239) 2021-09-30 10:41:09 -07:00
Max Schmitt ceafa6548d
test: add test for downloading PDF files (#9235) 2021-09-30 17:50:13 +02:00
Yury Semikhatsky 2d428c8a4e
feat(fetch): store cookies between requests (#9221) 2021-09-29 17:15:32 -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
Pavel Feldman f78302e8dd
fix(toBeHidden): return true to missing elements (#9205) 2021-09-28 17:11:04 -07:00
Dmitry Gozman 0a690778e4
fix(expect): beautiful expect stacks (#9204)
We now mark our wrapper as `__PWTRAP__[expect.toHaveText]` and
find it later in the stack trace.

Added trace/inspector tests to ensure this behavior in the future.
2021-09-28 16:02:34 -07:00
Yury Semikhatsky b93718daea
feat(fetch): support ignoreHTTPSErrors option (#9206) 2021-09-28 15:33:36 -07:00
Pavel Feldman 2b055b3092
feat(api): introduce locator.waitFor (#9200) 2021-09-28 13:57:11 -07:00
Yury Semikhatsky 64657c3b65
feat(fetch): send Playwright as default user-agent for global fetch (#9195) 2021-09-28 13:01:35 -07:00
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
Yury Semikhatsky ebe4e41606
test: add tests for Cross-Origin-Opener-Policy navigation (#9184) 2021-09-28 09:56:07 -07:00
Yury Semikhatsky 962547e716
test: get response body for COOP responses (#9196) 2021-09-28 09:54:05 -07:00
Dmitry Gozman fa536786f2
fix(test runner): proper serial mode with beforeAll/afterAll failures (#9183) 2021-09-27 15:58:26 -07:00
Yury Semikhatsky 6be908d959
test: canvas updates are reflected on screenshots (#9180) 2021-09-27 13:45:03 -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
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 d22dd4a4e7
feat(test runner): improve fixture typings for function fixtures (#9138)
When fixture value `R` is a function, TypeScript sometimes confuses
function `R` and function `async ({}, use) => {}`. This leads to
`any` types in the latter because it could be either of the functions
as TS thinks.

The solution is to only accept the second syntax, assuming that noone
passes fixture value that is a function as is:

```js
// This will stop working.
test.extend<{ foo: (x: number) => number }>({
  foo: x => 2 * x,
});

// This will get inferred types and autocomplete.
test.extend<{ foo: (x: number) => number }>({
  foo: async ({}, use) => {
    await use(x => 2 * x);
  },
});
```
2021-09-24 19:59:30 -07:00
Dmitry Gozman f4aaebfba0
fix(expect): produce "waiting for selector" log, corner cases (#9140) 2021-09-24 18:55:45 -07:00
Dmitry Gozman 418ce9c17e
test: unflake a few tests (#9142) 2021-09-24 15:05:20 -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 0908dc98c8
chore: migrate expect(locator).toMatchText to protocol (#9117) 2021-09-23 16:46:46 -07:00
Dmitry Gozman 1fb9d21223
test: unflake "should have correct snapshot size" (#9099) 2021-09-23 11:40:55 -07:00
Yury Semikhatsky 26bca47a47
test: add failing WebKit navigation test (#9097) 2021-09-23 08:45:40 -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 1bebbc31b2
test: unflake "should close the context without awaiting the failed download" (#9094) 2021-09-22 17:28:17 -07:00
Pavel Feldman de4aa50d55
chore: simplify dom tasks (#9089) 2021-09-22 17:17:49 -07:00
Dmitry Gozman d7901ea9ff
test: unflake inspector/pause.spec.ts (#9096) 2021-09-22 17:09:09 -07:00
Dmitry Gozman b978ce33cb
test: unflake "should fail when frame detaches" (#9095) 2021-09-22 17:09:02 -07:00
Dmitry Gozman e6f5404621
test: unflake "should timeout in socket while connecting" (#9093) 2021-09-22 17:08:49 -07:00