484 Commits

Author SHA1 Message Date
Jorge Caridad
fb59e6372b
docs: fix typos in various documentation files (#31656) 2024-07-12 10:24:52 -07:00
Max Schmitt
9569cb5c1e
feat: support client certificates (#31529)
Signed-off-by: Max Schmitt <max@schmitt.mx>
Co-authored-by: Dmitry Gozman <dgozman@gmail.com>
2024-07-12 11:42:24 +02:00
Max Schmitt
1b85ec9dc2
test: unflake signals temp dir removal test (#31655) 2024-07-12 09:34:04 +02:00
Pavel Feldman
77e50635ee
chore: fix build warnings (#31616) 2024-07-11 14:12:59 +02:00
Dmitry Gozman
48db1b1663
fix(ui mode): allow --updateSnapshots (#31584)
Fixes #31408.
2024-07-08 01:08:57 -07:00
Dmitry Gozman
bc27ca225e
feat(trace): record trace upon browser closure (#31563)
Retaining traces in the following scenarios:
- browser crash;
- manual `browser.close()`;
- implicit `browser.close()` from the `browser` fixture upon test end.

This does not affect the library, where `browser.close()` will not
retain the trace and will close the browser as fast as possible.

References #31541, #31535, #31537.
2024-07-06 11:34:34 -07:00
Max Schmitt
1132667ffe
chore: bump TypeScript to v5.5 (#31532) 2024-07-05 16:31:08 +02:00
Max Schmitt
5bdced9c9b
chore: bump @types/node and chokidar (#31527) 2024-07-03 09:40:37 +02:00
Max Schmitt
9a3e0967e6
fix(electron): tracing with @playwright/test (#31437) 2024-07-01 19:19:38 +02:00
Pavel Feldman
f46ae15500
test(clock): fix clock mode bots (#31472) 2024-06-28 11:46:28 -07:00
Pavel Feldman
da441347e2
fix(runner): do not run beforeEach hooks upon skip modifier (#31426)
Fixes https://github.com/microsoft/playwright/issues/31425
2024-06-25 10:47:37 -07:00
Pavel Feldman
122818c62c
feat: allow boxing and titling fixtures, simulate context fixture deps (#31423)
Fixes https://github.com/microsoft/playwright/issues/31411
2024-06-24 21:43:43 -07:00
Max Schmitt
47fb9a080d
fix(test-runner): don't add slow annotation twice (#31414) 2024-06-24 23:34:17 +02:00
Luke Page
94f0cadea3
fix(fs-watcher) ignore node_modules on windows (#31341)
Partially fixes https://github.com/microsoft/playwright/issues/31337 by
supporting ignoring node_modules on windows.

When I debug the function it gets a unix style path filename on windows,
so the function never ignores node_modules. The ignore path globs are
expected to use the unix path seperator and I've tested this fix works
on windows and I assume that since mac uses unix style, it also works
there (this is a pretty standard glob construct (chokidar points at any
match https://github.com/micromatch/anymatch and anymatch has this exact
example in their readme.md)

Signed-off-by: Luke Page <137174537+lukpsaxo@users.noreply.github.com>
2024-06-19 11:14:10 -07:00
Dmitry Gozman
32e25a252b
chore: mark v1.46.0-next (#31324) 2024-06-14 18:22:42 -07:00
Dmitry Gozman
fce2874796
feat(types): export PageAssertionsToHaveScreenshotOptions type (#31319)
Fixes #31089.
2024-06-14 09:39:21 -07:00
Dmitry Gozman
b9106a4c42
fix(test runner): do not use @babel/plugin-transform-dynamic-import (#31285)
Historically, this plugin was important to translate dynamic imports
into require calls so that we can intercept them and transpile.

This is not needed anymore with ESM loader enabled by default, so we can
avoid this transformation and support dynamic imports of ESM-only
packages/files.

Fixes #17075, fixes #23255, fixes #31140, references #23662.
2024-06-13 06:18:44 -07:00
dependabot[bot]
f63b0252c9
chore(deps): bump braces from 3.0.2 to 3.0.3 in /packages/playwright/bundles/utils (#31264) 2024-06-12 22:22:35 +02:00
Yury Semikhatsky
f1475fa644
chore: trim multiline step titles to first line (#31269)
Fixes https://github.com/microsoft/playwright/issues/31266
2024-06-12 08:24:12 -07:00
Pavel Feldman
cf400a6080
Revert "feat(test runner): shuffle order of tests with sharding seed … (#31260)
…(#30817)"
2024-06-11 16:05:35 -07:00
Pavel Feldman
732e7393d3
Revert "feat(test): add URL field to annotations for hyperlink disp… (#31259)
…lay (#30665)"
2024-06-11 16:05:21 -07:00
Lee Byonghun
abaddc01c9
fix: throw error when workers option is not number or percentage (#31210) 2024-06-10 11:27:54 +02:00
Pavel Feldman
f97d87ea5a
docs: fix the api review typos (#31071) 2024-05-30 12:15:52 -07:00
Mathias Leppich
5708148496
fix(merge-reports): only change test ids when needed (#31061)
When merging blob reports test ids are patched to make sure there is no
collision when merging reports that might have overlapping test ids.
However, even if you were merging reports that had no overlapping ids,
all test ids will be modified, which is an undesirable side effect.

This PR only modify test ids when the same test id has already been used
in a previous blob report.

----

This change is also part of
https://github.com/microsoft/playwright/pull/30962
2024-05-30 11:29:20 -07:00
Dmitry Gozman
ba5b460444
chore: move artifacts recording to TestLifecycleInstrumentation (#30935)
The spirit of this change is reverting #23153. Since that time, we have
moved tracing and `artifactsDir` lifetime into the test runner, so the
reason for revert is mitigated.

Fixes #30287, fixes #30718, fixes #30959.
2024-05-29 18:05:17 -07:00
Mathias Leppich
6e9c31f93b
fix(runner): don't write last run info when listing tests (#31062) 2024-05-29 09:07:40 -07:00
Yury Semikhatsky
a11a6d9874
fix(blob): make sure tele reporters do not override ids (#31056)
Fixes https://github.com/microsoft/playwright/issues/31023
2024-05-28 16:37:11 -07:00
Pavel Feldman
6675652269
chore: split client-side instrumentation into sync and async (#31054) 2024-05-28 14:29:57 -07:00
Max Schmitt
63fd28e038
docs(grep): contains tags (#31042) 2024-05-28 19:30:47 +02:00
Ernst de Jong
ef023c4f40
chore(types): fix typo in screenshot mode (#31047) 2024-05-28 16:14:21 +02:00
Yury Semikhatsky
9884c851ff
feat(expect): expose expect timeout (#30969)
Fixes https://github.com/microsoft/playwright/issues/30583
2024-05-24 08:56:43 -07:00
Yury Semikhatsky
2cbd7b78ea
chore: change expect.getState() return type to unknown (#30989)
Eventually we would like to remove this method altogether.
2024-05-23 14:06:59 -07:00
Yury Semikhatsky
f7b0490500
chore: remove references to jest expand (#30988)
Since https://github.com/microsoft/playwright/pull/7722 we always set
expand to false
[here](a106428114/packages/playwright/src/matchers/expect.ts (L176))
and don't expose any means to change that (in jest it's
expect.setState).
2024-05-23 13:44:15 -07:00
Yury Semikhatsky
a106428114
feat(config): respectGitIgnore option (#30972)
Fixes https://github.com/microsoft/playwright/issues/30553
2024-05-23 12:05:02 -07:00
Mathias Leppich
825e0e466e
feat(test runner): shuffle order of tests with sharding seed (#30817) 2024-05-22 16:22:09 -07:00
Dmitry Gozman
eed6a10f3f
fix(tracing): speed up trace recording (#30946)
This includes two major changes:
- reuse `SerializedFS` for live test runner tracing;
- merge scheduled `appendFile` operations into a single `fs` call.

In some cases, this improves performance of UI mode by 61% and
performance of `trace: on` mode by 38%. Note that performance
improvement on the average test will not be as noticeable.

References #30875, #30635.
2024-05-22 15:19:32 -07:00
Max Schmitt
cfc9623a79
fix(vscode): keep config order in vscode extension project dropdown (#30954)
Relates https://github.com/microsoft/playwright/issues/30936
2024-05-22 22:18:03 +02:00
Pavel Feldman
7b27fc3916
chore: pass outputDir to uimode (#30941)
Fixes https://github.com/microsoft/playwright/issues/30886
2024-05-21 14:36:31 -07:00
오소현
165ecac5df
feat(test): add URL field to annotations for hyperlink display (#30665) 2024-05-21 12:46:38 -07:00
Dmitry Gozman
6290af3a08
feat(reporters): align and document environment variables (#30912)
- Documents `PLAYWRIGHT_FORCE_TTY` and `FORCE_COLOR` across terminal
reporters.
- New `PLAYWRIGHT_LIST_PRINT_STEPS`. Removes undocumented test-only
`PW_TEST_DEBUG_REPORTERS_PRINT_STEPS`.
- Replaces `PLAYWRIGHT_HTML_REPORT` with `PLAYWRIGHT_HTML_OUTPUT_DIR`
and `PW_TEST_HTML_REPORT_OPEN` with `PLAYWRIGHT_HTML_OPEN` for
consistency, supports older versions for backwards compatibility.
- New `PLAYWRIGHT_HTML_HOST`, `PLAYWRIGHT_HTML_PORT` and
`PLAYWRIGHT_HTML_ATTACHMENTS_BASE_URL`.
- New `PLAYWRIGHT_JUNIT_STRIP_ANSI` and
`PLAYWRIGHT_JUNIT_INCLUDE_PROJECT_IN_TEST_NAME`.
- Removes `PW_HTML_REPORT` that was set for unknown reason.
2024-05-21 10:46:52 -07:00
Dmitry Gozman
4ad94c1a8c
chore: print friendly localhost address from http server (#30853) 2024-05-17 08:55:12 -07:00
Dmitry Gozman
89cdf3d56e
feat: env.PLAYWRIGHT_FORCE_TTY to control reporters' tty (#30834)
Previously, terminal reporters consulted `process.stdout.isTTY`. Now it
is possible to control the tty behavior:
- `PLAYWRIGHT_FORCE_TTY=0` or `PLAYWRIGHT_FORCE_TTY=false` to disable
TTY;
- `PLAYWRIGHT_FORCE_TTY=1` or `PLAYWRIGHT_FORCE_TTY=true` to enable TTY,
defaults to 100 columns when real columns are unavailable;
- `PLAYWRIGHT_FORCE_TTY=<number>` to force enable TTY and set the
columns.

Fixes #29422.
2024-05-15 15:01:52 -07:00
Pavel Feldman
8dec672121
chore(testServer): accept video parameter when running tests (#30832) 2024-05-15 12:45:57 -07:00
Dmitry Gozman
5fa0583dcb
fix(test runner): regular worker termination finishes long fixtures (#30769)
Previously, terminating worker always had a 30 seconds force exit.

Now, regular worker termination assumes that process will eventually
finish tearing down all the fixtures and exits. However, the
self-destruction routine keeps the 30 seconds timeout to avoid zombies.

Fixes #30504.
2024-05-15 10:37:36 -07:00
Joe-Hendley
6ae5cd3824
feat: implement flag to fail flaky tests (#30618)
Implements feature requested in
https://github.com/microsoft/playwright/issues/30457

The test runner treats flaky tests as failures when the flag is enabled,
but still reports flaky tests as flaky in the reporting interface. It
feels like something worth discussing as this behaviour makes sense to
me, but looked a bit odd to @BJSS-russell-pollock when I ran this past
him.

Closes #30457.
2024-05-15 09:10:10 -07:00
Pavel Feldman
7a588e6c72
chore: do not close the reused context when video is on (#30807)
Fixes https://github.com/microsoft/playwright/issues/30779
2024-05-15 09:05:06 -07:00
Yury Semikhatsky
fb319e6d3d
fix: match client step and server action by explicit stepId (#30641)
Matching bu `apiName@wallTime` fails when two actions start at the same
time, e.g. two parallel api requests. Moreover, it results in trace
actions that have parent set to themselves, which in turn causes
infinite loop in the trace viewer. To avoid this problems we write
stepId explicitly to the library trace and use those step ids to find
corresponding test runner steps.

The stepId is passed via zone in case of expect, because the protocol
step is quite deep in the call chain after or explicitly in case of API
call steps created by the test runner instrumentation.
2024-05-14 12:10:46 -07:00
Yury Semikhatsky
873f3a03ac
chore(trace): add context create event for test runner (#30697)
Adding metadata event to the test.trace to simplify time computation
logic.
2024-05-14 09:00:33 -07:00
Dmitry Gozman
776b04e5ea
feat: APIRequestContext dispose reason (#30765)
Similarly to page.close, we pass test-runner specific reason to
facilitate better error messages.

```
  1) a.test.ts:10:11 › test

    Error: apiRequestContext.fetch: Fixture { request } from beforeAll cannot be reused in a test.
      - Recommended fix: use a separate { request } in the test.
      - Alternatively, manually create APIRequestContext in beforeAll and dispose it in afterAll.
    See https://playwright.dev/docs/api-testing#sending-api-requests-from-ui-tests for more details.

       9 |
      10 |       test('test', async () => {
    > 11 |         await context.fetch('http://example.com');
         |                       ^
      12 |       });
      13 |
```

Closes #29260.
2024-05-13 18:51:30 -07:00
Viktor Szépe
150cbcbdf3
chore: fix typos (#30645) 2024-05-08 19:40:03 +01:00