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
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