Commit graph

13726 commits

Author SHA1 Message Date
오소현 8761dafc73
feat(test runner): allow to pass arbitrary location to test.step (#32504)
Fixes https://github.com/microsoft/playwright/issues/30160

### Description:
This pull request introduces the ability to specify custom locations for
test steps in Playwright. By enabling the provision of arbitrary
locations to the test.step method, it resolves the limitation where
helper methods obfuscate the original call site, providing more accurate
and meaningful location data in test reports.

### Motivation:
To enhance the utility and clarity of test reports in Playwright.
Specifically, it addresses the need to trace test steps back to their
precise location in the code, which is especially important when steps
are abstracted in helper functions. This feature is crucial for
maintaining accurate documentation and facilitating debugging processes.

### Changes:
Added functionality to pass a custom location object to test.step.

### Expected Outcome:
This PR is expected to significantly improve the precision and
usefulness of diagnostic data in test reports by allowing specific
locations within helper functions to be accurately documented. It
facilitates better tracking of test executions and simplifies the
debugging process, making it easier for developers to understand and
address issues within complex tests.

### References:
Closes https://github.com/microsoft/playwright/issues/30160 -
"[Feature]: allow to pass arbitrary location to test.step"

**Code Check**
I conducted tests on this new feature by integrating it into some
existing test codes, and it worked well. I will attach the code used for
testing and a screenshot showing the successful outcome.

<details>
<summary>toggle dropdown</summary>
<div markdown="1">

```
import type { Location } from '../../../packages/playwright/types/testReporter'
...
test('should respect the back button', async ({ page }) => {
    await page.locator('.todo-list li .toggle').nth(1).check();
    await checkNumberOfCompletedTodosInLocalStorage(page, 1);
...
    await test.step('Showing active items', async () => {
      await page.getByRole('link', { name: 'Active' }).click();
    }, {location});
```

<img width="1109" alt="image"
src="https://github.com/user-attachments/assets/359feafa-0949-4c71-9426-46debef21bdd">
</div>
</details>
2024-09-17 08:11:21 -07:00
Max Schmitt 507e515cb2
chore: remove unused @babel/parser (#32654) 2024-09-17 16:14:24 +02:00
Simon Knott 751b939d3a
feat(fetch): record timings (#32613)
Related to https://github.com/microsoft/playwright/issues/19621

Adds some instrumentation to collect timings for `APIRequestContext`
requests and adds them to the HAR trace. Doesn't yet expose them via an
API, but makes our `Duration` field in the trace viewer show a nice
duration:

<img width="1392" alt="Screenshot 2024-09-14 at 11 46 04"
src="https://github.com/user-attachments/assets/8020382d-9494-4634-9cfd-22b6f4a1d770">


I'm gonna add it to our API in a separate PR.

---------

Signed-off-by: Simon Knott <info@simonknott.de>
Co-authored-by: Dmitry Gozman <dgozman@gmail.com>
2024-09-17 16:11:21 +02:00
Max Schmitt c216c25a1d
feat(html-reporter): add file name copy button (#32652) 2024-09-17 15:54:22 +02:00
Simon Knott f6219e6e79
Revert "feat(tracing): add .pwtrace to trace file extension" (#32648)
Reverts microsoft/playwright#32581
Relates
https://github.com/microsoft/playwright/issues/32226#issuecomment-2351164727
2024-09-17 15:32:30 +02:00
Ana Margarida Silva b23edf5137
fix(docs): remove todo in ci intro docs (#32643) 2024-09-17 10:36:43 +02:00
Simon Knott ec2ae1ed2d
feat(watch mode): buffer mode (#32631)
Closes https://github.com/microsoft/playwright/issues/32578.

Adds a buffer mode that can be toggled by pressing <kbd>b</kbd>. When
engaged, changed test files are collected and shown on screen. The test
run is then kicked off by pressing <kbd>Enter</kbd>.

This changes the signal to start a test run from <kbd>Cmd+s</kbd> to a
<kbd>Enter</kbd> press in the test terminal. It should help users with
auto-save and make it easier to run on long-running tests. It feels very
similar to running `npx playwright test`, but without having to write a
filter.



https://github.com/user-attachments/assets/71e16139-9427-4e90-b523-8d218f09ed9d
2024-09-17 08:45:44 +02:00
Simon Knott b0f15b320f
fix(recorder): reattach toolbar if it was unmounted by framework hydration (#32637)
Closes https://github.com/microsoft/playwright/issues/32632. A side
effect of Remix's hydration implementation is that it throws away the
entire DOM. This is broadly discussed in
https://github.com/remix-run/remix/issues/4822 - there might be a fix in
coming React versions, but who knows.
Besides breaking browser extensions, this also deletes our toolbar!
This PR fixes it by periodically checking in on `x-pw-glass`, and
remounting it if it was unmounted. Hacky but effective!
2024-09-17 08:37:49 +02:00
Pavel Feldman 47713e8a66
chore: make recorder tests pass in frozen mode (#32645) 2024-09-16 22:47:54 -07:00
Pavel Feldman 3bff7b6ab1
chore: preserve selected trace action in live trace (#32630) 2024-09-16 17:33:52 -07:00
Yury Semikhatsky 2a347b5494
chore: support launchPersistentContext with bidi (#32641) 2024-09-16 17:31:26 -07:00
Pavel Feldman 6dbde62a6b
chore: simplify signal handling while recording (#32624) 2024-09-16 14:39:36 -07:00
Pavel Feldman 92c6408b94
fix(recorder): address the react race condition (#32628) 2024-09-16 13:47:13 -07:00
Dmitry Gozman ce06a81aa6
feat: make npx playwright clear-cache public (#32638) 2024-09-16 12:54:20 -07:00
Max Schmitt 21d162c945
feat(client-certificates): add support for proxies (#32611)
Fixes https://github.com/microsoft/playwright/issues/32370
2024-09-16 17:57:33 +02:00
Max Schmitt b335b00a86
docs: add reference to locator strictness if or resolves to multiple elements (#32633) 2024-09-16 17:30:14 +02:00
Playwright Service feac957475
feat(webkit): roll to r2077 (#32636)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2024-09-16 17:18:01 +02:00
Anthony Roberts 71c43693ac
feat(reporter): add copy button for annotations (#31790)
Adds a copy-to-clipboard button for each annotation so that text can be
copied easily.
This re-uses the existing `CopyToClipboard` component and adds a `small`
variant that can be used inline. The icon size and colour have been
chosen to avoid being overwhelming when used inline.

Related to #30141 
I opted not to introduce the hover behaviour from #30749 as it's less
discoverable, but can understand why that might be favourable. Certainly
open to suggestions 😄

<img width="379" alt="Screenshot 2024-07-22 at 3 23 53 PM"
src="https://github.com/user-attachments/assets/3b9998cf-2e8d-40c9-9c8a-64eab3a9ed2e">
2024-09-16 07:57:11 -07:00
Max Schmitt 762e954599
devops: update GitHub Actions (#32634)
Fixes: 
<img width="2205" alt="image"
src="https://github.com/user-attachments/assets/0cd09784-6f0b-4331-9e08-315cf8614031">

For future reference: `pip install github-actions-cli &&
github-actions-cli update-actions --update`
2024-09-16 15:43:42 +02:00
Dmitry Gozman 268357238a
fix(expect): respect custom message in expect.poll (#32603)
Fixes #32582.
2024-09-16 00:10:06 -07:00
Max Schmitt c24ad36f86
docs(docker): fix Docker container permissions (#32621) 2024-09-16 07:39:36 +02:00
Simon Knott aeb4d182f7
feat(tracing): add .pwtrace to trace file extension (#32581)
Closes https://github.com/microsoft/playwright/issues/32226

I've updated every mention of `.trace.zip` except for the release notes.
2024-09-14 10:17:07 +02:00
Yury Semikhatsky 34876e9291
chore: cookies in intercepted bidi requests (#32623) 2024-09-13 18:29:35 -07:00
Matthew Jee f2a974b045
feat(api): add method to force garbage collection (#32383) 2024-09-13 23:09:36 +02:00
Playwright Service 5b28d2a84c
feat(firefox): roll to r1464 (#32614)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2024-09-13 18:12:43 +02:00
Playwright Service b82100adf5
feat(firefox-beta): roll to r1464 (#32615)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2024-09-13 18:12:35 +02:00
Max Schmitt 79cba7d704
chore: introduce option overrides on context/browser (#32606) 2024-09-13 17:34:34 +02:00
Simon Knott 9bb1c86f93
feat(test runner): don't run tests on --watch start (#32583)
Closes https://github.com/microsoft/playwright/issues/32580.
2024-09-13 17:24:38 +02:00
Max Schmitt 9e99c86f00
chore: unhide merge-reports command (#32605) 2024-09-13 16:13:23 +02:00
Playwright Service e3370c9eb0
feat(webkit): roll to r2075 (#32610)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2024-09-13 15:13:11 +02:00
Simon Knott 48c7fb6b06
feat(library): accept FormData in fetch (#32602)
Closes https://github.com/microsoft/playwright/issues/26520 by accepting
`FormData`, which became stable in Node.js in v21.
2024-09-13 13:21:02 +02:00
Pavel Feldman cd4dabef8b
chore: remove stray codegen signal handling (#32599) 2024-09-12 14:38:23 -07:00
Pavel Feldman 7e3348eb0e
chore: recorder is trace viewer experiment (#32598) 2024-09-12 13:39:44 -07:00
Pavel Feldman de08e729ae
chore: move recorder trace to action collector (#32597) 2024-09-12 12:42:28 -07:00
Pavel Feldman d051495c7a
chore: perform double click while recording (#32576) 2024-09-12 11:40:44 -07:00
Max Schmitt 5e086be36b
chore: freeze ffmpeg on macOS-12 (#32596) 2024-09-12 20:32:34 +02:00
Max Schmitt 8e82f53ceb
test: unskip various proxy tests (#32595)
Unskipping of various tests and revert the rest of
https://github.com/microsoft/playwright/pull/6350 since the upstream bug
has been fixed.
2024-09-12 20:31:22 +02:00
Simon Knott ef4be6afff
feat(test runner): make expect.extend immutable (#32366)
Changes `expect.extend` behaviour so that it doesn't mutate the global
instance and behaves closer to what users expect. This is formally a
breaking change, and I had to remove a test that asserts the breaking
behaviour.

TODO:
- [x] decide wether this is a separate method or a flag for
`expect.extend`
- [x] figure out if we need to change docs
2024-09-12 19:56:38 +02:00
Simon Knott c9f3eb158e
feat(ui): highlight output toggle button if terminal contains error (#32392)
Closes https://github.com/microsoft/playwright/issues/32368

<img width="412" alt="Screenshot 2024-08-30 at 13 22 39"
src="https://github.com/user-attachments/assets/76cadcd9-e92a-44d9-80fc-b4e04702e71e">
2024-09-12 19:40:40 +02:00
Playwright Service 470b1b4922
feat(chromium-tip-of-tree): roll to r1259 (#32588)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2024-09-12 13:46:33 +02:00
Playwright Service b1b33efebb
feat(chromium): roll to r1135 (#32591)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2024-09-12 13:46:15 +02:00
Max Schmitt 491678ada6
docs: release note fixes for 1.47 (#32589) 2024-09-12 12:51:30 +02:00
Teng Yang 6a0009f9ed
fix(trace-viewer): fix ui issue on network request details (#32553) 2024-09-12 12:26:51 +02:00
Max Schmitt dc5bbbf295
devops: remove macos-12 bots (#32587)
We stopped supporting macos-12 in 1.45, see the release notes and
https://github.com/microsoft/playwright/pull/31283.
2024-09-12 11:27:47 +02:00
Max Schmitt a838e74c61
devops: move macos runners to public infra (#32586) 2024-09-12 10:50:05 +02:00
Yury Semikhatsky d1926e2f9b
chore: do not store project name in expectations (#32575) 2024-09-11 15:15:10 -07:00
Yury Semikhatsky 678c454fea
test: update bidi expectations from recent run (#32574) 2024-09-11 14:59:28 -07:00
Yury Semikhatsky fd1f32556b
chore: run all tests with bidi by default (#32572)
Only use expectation files on CI to save resources
2024-09-11 14:24:32 -07:00
Dmitry Gozman 1981989aef
docs: mention variability of media codecs between platforms (#32569)
References #32558.
2024-09-11 13:35:17 -07:00
Yury Semikhatsky a8103abee6
chore: incremental bidi expectation update, ff expectations (#32570)
* Do not override expectations for the tests that didn't run or already
had expectations
* Sort expectations alphabetically
* Add firefox expectations
2024-09-11 13:33:25 -07:00