Commit graph

43 commits

Author SHA1 Message Date
Dmitry Gozman 63329a3471
chore: remove dependency from library on expectZone, straighten csi handling (#34211) 2025-01-07 13:30:04 +00:00
Dmitry Gozman eaf3536014
fix(trace): afterAll hook should not break tracing with reused context (#33616) 2024-11-14 13:24:02 -08:00
Max Schmitt d8a98a2bf5
test: fix flaky page.pause() tests end up stalling (#33544) 2024-11-11 22:19:58 +01:00
Dmitry Gozman 9b2ca93a50
chore: followup to tracing.group (#33450) 2024-11-05 04:45:54 -08:00
René fa10bcd5a3
feat(tracing) Adding groups to trace via pw-api (#33081)
Signed-off-by: René <snooz@posteo.de>
Signed-off-by: René <41592183+Snooz82@users.noreply.github.com>
Co-authored-by: Dmitry Gozman <dgozman@gmail.com>
2024-11-05 03:45:37 -08:00
Dmitry Gozman 2e01154bb5
feat: screenshot:on-first-failure (#33266) 2024-10-24 04:41:35 -07:00
Yury Semikhatsky f0e13164d7
chore: split firefox and chromium bidi implementations (#32478) 2024-09-05 18:31:56 -07:00
Yury Semikhatsky 9a2c60a77c
chore: identify largest gaps in Bidi API (#32434)
This pull request introduces initial support for the WebDriver BiDi
protocol in Playwright. The primary goal of this PR is not to fully
implement BiDi but to experiment with the current state of the
specification and its implementation. We aim to identify the biggest
gaps and challenges that need to be addressed before considering BiDi as
the main protocol for Playwright.
2024-09-04 11:36:52 -07:00
Dmitry Gozman c4bb24f02f
feat(test runner): record trace after a test-scoped fixture teardown times out (#32160)
Fixes #30718, fixes #31537.
2024-08-16 08:03:02 -07:00
Dmitry Gozman 1537d3c2de
chore(test runner): make 'debug' an explicit option internally (#32154)
This allows any time slot that has a legitimate timeout of zero to be
updated later on. See test for an example.

Previously, setting timeout to zero at any moment was considered a
"debug mode" and any subsequent timeouts were ignored.
2024-08-16 01:44:37 -07:00
Yury Semikhatsky fef27395a5
chore(trace): do not nest API actions based on time (#31990)
They should be properly nested based on Node.js zones now.
2024-08-05 10:06:14 -07:00
Yury Semikhatsky 1074a765e4
fix(trace): do not place expect into unfinished api calls based on time (#31970)
Fixes https://github.com/microsoft/playwright/issues/31959
2024-08-01 14:14:10 -07:00
Max Schmitt c4862c022c
chore: client certificates api review (#31826) 2024-07-23 22:56:36 +02:00
Dmitry Gozman 6ee8f1de2d
Revert "chore: move artifacts recording to TestLifecycleInstrumentation (#30935)" (#31686)
This reverts commit ba5b460444.
2024-07-15 07:01:51 -07:00
Dmitry Gozman 074cc7d467
Revert "feat(trace): record trace upon browser closure (#31563)" (#31677)
This reverts commit bc27ca225e. Considered
too risky.
2024-07-15 01:08:51 -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
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 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 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
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
Pavel Feldman 6675652269
chore: split client-side instrumentation into sync and async (#31054) 2024-05-28 14:29:57 -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
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
Dmitry Gozman 88e80cf948
chore(test runner): simplify TimeoutManager and TimeoutRunner (#29863) 2024-03-11 15:43:50 -07:00
Pavel Feldman 82b17bdda1
chore: mark server-related fixture options as such (#29602) 2024-02-21 17:04:36 -08:00
Pavel Feldman d573c515a3
chore: add test server stub (#29568) 2024-02-20 09:56:33 -08:00
Dmitry Gozman dc9cddde95
chore: do not rely on zones for predefined steps (#29485)
This fixes some edge cases where fixtures and steps inside them were
attached to the wrong parent (see the new test).
This will also allow to replace some `runAsStep` calls with a flat list
of tasks to do that do not rely on lexical scope.
2024-02-15 12:49:08 -08:00
Yury Semikhatsky 7a86bf4af6
chore: delete store.ts (#29423) 2024-02-08 12:55:18 -08:00
Dmitry Gozman 5ee7179b13
fix(test runner): make TestTracing responsible for trace management (#29181)
... instead of a fixture.

Fixes #29133, fixes #28733, fixes #28476.
2024-01-26 15:52:25 -08:00
Pavel Feldman 38822d1014
chore: remove manual __esModule override (#28935) 2024-01-10 16:28:08 -08:00
Pavel Feldman afe90d648e
fix: do not generate api call steps inside named expects (#28609)
Fixes: https://github.com/microsoft/playwright/issues/28528
2023-12-13 09:06:02 -08:00
Dmitry Gozman 5488c03d7f
chore: make asLocator() always safe (#28207) 2023-11-16 16:31:34 -08:00
Pavel Feldman a54dbfdadf
chore: plumb the target close reason when test fails (#27640) 2023-10-16 20:32:13 -07:00
Pavel Feldman 393bd36e0a
chore: composed->merge (#27555) 2023-10-11 13:56:27 -07:00
Pavel Feldman fd6bf8aa2c
chrome: improve error messages on vscode side (#27521) 2023-10-09 19:55:24 -07:00
Pavel Feldman 11a4b3f7f5
chore: remove parsed stack trace (#27496) 2023-10-09 17:04:16 -07:00
Dmitry Gozman daba77644c
feat: composedExpect (#27432)
Allows to merge multiple expects with custom matchers added by
`expect.extend()`.
2023-10-04 15:01:25 -07:00
Dmitry Gozman 65ce4cd213
feat: expose composedTest() instead of test._extendTest() (#27414) 2023-10-03 13:26:30 -07:00
Pavel Feldman 2892467839
chore: delete temporary artifacts after test (#27332) 2023-09-27 16:29:21 -07:00
Dmitry Gozman f9298cfff6
fix(tracing): unclash trace names between test and hooks (#27063)
Fixes #27048.
2023-09-13 19:56:40 -07:00
Dmitry Gozman 186f86905c
chore: make @playwright/test depend on playwright (#26946) 2023-09-08 14:23:35 -07:00
Renamed from packages/playwright-test/src/index.ts (Browse further)