Commit graph

235 commits

Author SHA1 Message Date
Daniel 1c8ceb0a02
fix(html-reporter): Include specified host and port in the logged instructions to launch the HTML report (#28144)
Signed-off-by: Daniel <3473356+D4N14L@users.noreply.github.com>
2023-11-15 21:25:03 +01:00
Yury Semikhatsky ec2c7024b6
docs: fix ignoreCase description (#28121) 2023-11-14 10:18:04 -08:00
Dmitry Gozman bf4c315b09
fix(types): explicit ExpectMatcherState type, optional Expect arg (#28119)
Fixes #28035.
2023-11-13 18:37:50 -08:00
Yury Semikhatsky 35aeace476
docs(assertions): note on whitespace normalization (#28110)
Fixes https://github.com/microsoft/playwright-java/issues/1419
2023-11-13 12:28:50 -08:00
Pavel Feldman 1b3349d091
chore: use codemirror in the on-hover locator editor (#28090) 2023-11-10 22:00:28 -08:00
Pavel Feldman cb14de7a5b
chore: do not use ansi outsite of TTY (#27979)
Fixes https://github.com/microsoft/playwright/issues/27891
2023-11-07 14:09:40 -08:00
Yury Semikhatsky 53a78a315e
fix(merge): preserve original "rootDir" by default (#27963)
Fixes https://github.com/microsoft/playwright/issues/27877
2023-11-03 13:49:47 -07:00
Pavel Feldman a55fe8fd1f
chore: reset preserveOutput in ui mode (#27944)
Fixes https://github.com/microsoft/playwright/issues/27892
2023-11-02 20:50:23 -07:00
Ben Scott c59483c5fb
fix(tsconfig): handle tsconfig paths without a baseUrl (#27846) 2023-11-02 11:27:49 -07:00
Pavel Feldman 778047facc
chore: stream trace viewer logs (#27807) 2023-10-26 11:15:43 -07:00
Max Schmitt 5f366088be
chore: get rid of rimraf package (#27790)
This seems more reliable nowadays as rimraf.

https://github.com/microsoft/playwright/issues/27712

---------

Signed-off-by: Max Schmitt <max@schmitt.mx>
2023-10-26 19:41:00 +02:00
Yury Semikhatsky 0ade5aa9ad
fix: ignoreCase in toHaveAttribute (#27809)
Fixes #27795
2023-10-25 19:22:13 -07:00
Pavel Feldman 7de0ccd36e
chore: support await using for close() and dispose() (#27766)
This change assumes that the user has Node 18 with Symbol.dispose
available.

Fixes https://github.com/microsoft/playwright/issues/27141
2023-10-24 12:25:53 -07:00
Dmitry Gozman c8134bca5d
feat(html): show top-level errors (#27763)
Drive-by:
- extract `TestErrorView`;
- replace `data-test-id` with `data-testid` and `getByTestId()`.

---

<img width="1001" alt="top-level errors in html report"
src="https://github.com/microsoft/playwright/assets/9881434/2d6c0c52-8df1-46a9-b3fd-06ddc6f16796">
2023-10-24 09:35:07 -07:00
Dmitry Gozman 210168e36d
chore(test runner): remove fake skipped test results (#27762)
Fixes #27455.
2023-10-24 09:31:30 -07:00
Max Schmitt fe7847b126
fix: require JSX inside PWT with pnpm (#27744)
Fixes https://github.com/microsoft/playwright/issues/27285
2023-10-23 22:48:12 +02:00
Dmitry Gozman b8678ef902
chore(test runner): simplify some dispatcher logic (#27732)
- remove `onlyStartedTests` in favor of explicit branch with comments;
- produce one "test not found" error per test instead of a single large
error;
- extract `_failTestWithErrors` from `_massSkipTestsFromRemaining`.
2023-10-23 09:15:13 -07:00
Dmitry Gozman 85112be25c
fix(test runner): properly handle uncaught errors in test.fail() (#27734)
Before this fix, unhandled error during test.fail():
- marks this test as "interrupted";
- fails next test in the file with "fatal error".

After this fix:
- marks this test as "failed as expected";
- restarts worker for the next test.
2023-10-23 09:14:31 -07:00
Dmitry Gozman d67515f6c1
chore(test runner): do not produce some of the fake skipped test results (#27730) 2023-10-20 17:01:46 -07:00
Pavel Feldman f46c889449
chore: fix total progress reporting w/ deps (#27716) 2023-10-19 20:07:47 -07:00
Pavel Feldman d003945a7b
chore(ui): do not watch output folders (#27694) 2023-10-19 15:53:57 -07:00
Dmitry Gozman 6e62a11643
fix(trace): EPERM on windows (#27693)
When merging trace files, we sometimes left open read streams from the
zip, which prevents it from being removed.

Fixes #27286.
2023-10-19 11:14:17 -07:00
Dmitry Gozman fd82b2b3fa
feat(json report): add expected/unexpected/skipped/flaky stats (#27685)
Fixes #27498.
2023-10-18 12:55:31 -07:00
Max Schmitt 0a49c3dbb9
chore: bump @babel dependencies (#27632)
This fixes:

```
Run npm audit --omit dev
# npm audit report

@babel/traverse  <7.23.2
Severity: critical
Babel vulnerable to arbitrary code execution when compiling specifically crafted malicious code - https://github.com/advisories/GHSA-[6](https://github.com/microsoft/playwright/actions/runs/6535308689/job/17744452034?pr=27631#step:10:7)[7](https://github.com/microsoft/playwright/actions/runs/6535308689/job/17744452034?pr=27631#step:10:8)hx-6x53-jw[9](https://github.com/microsoft/playwright/actions/runs/6535308689/job/17744452034?pr=27631#step:10:10)2
fix available via `npm audit fix`
node_modules/@babel/traverse

1 critical severity vulnerability

To address all issues, run:
  npm audit fix
Error: Process completed with exit code 1.
```
2023-10-17 20:52:41 +02:00
Pavel Feldman a54dbfdadf
chore: plumb the target close reason when test fails (#27640) 2023-10-16 20:32:13 -07:00
Max Schmitt fd2fbe9d2f
fix: merge{Tests,Expects} via ESM imports (#27630)
Backport to 1.39.X?

Fixes https://github.com/microsoft/playwright/issues/27617
2023-10-17 00:09:44 +02:00
Max Schmitt 6b31b30df9
chore: allow a script to generate release-notes for GitHub (#27596)
`node utils/render_release_notes.mjs js 1.39`
2023-10-16 11:23:22 +02:00
Dmitry Gozman f0167091e6
fix(test runner): rework compilation cache logic (#27607)
- Do not write from workers.
- Remove marker files.
- Always try/catch reading from fs.

This mostly reverts https://github.com/microsoft/playwright/pull/26830
and https://github.com/microsoft/playwright/pull/26353.

Fixes #27592.
2023-10-13 21:01:40 -07:00
Pavel Feldman f212fd1a83
chore: unify target closed errors (#27540) 2023-10-12 11:05:34 -07:00
Pavel Feldman 393bd36e0a
chore: composed->merge (#27555) 2023-10-11 13:56:27 -07:00
Dmitry Gozman 7aee202aef
chore: mark 1.40.0-next (#27538) 2023-10-10 16:10:28 -07:00
Dmitry Gozman d11380e911
docs: improve test.step documentation (#27535) 2023-10-10 14:48:44 -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
Max Schmitt f856e3e4bc
chore: run 'npm pkg fix' (#27470)
As per

```
npm WARN publish npm auto-corrected some errors in your package.json when publishing.  Please run "npm pkg fix" to address these errors.
npm WARN publish errors corrected:
npm WARN publish Removed invalid "scripts"
npm WARN publish "bin[playwright-core]" script name was cleaned
npm WARN publish "repository.url" was normalized to "git+https://github.com/microsoft/playwright.git
```

works now as per
https://www.npmjs.com/package/@playwright/test/v/1.39.0-alpha-1696547902000
when you scroll down.

https://github.com/microsoft/playwright/issues/22555
2023-10-05 23:42:27 +00:00
Max Schmitt 10e7654fd9
chore: update repository.url in package.json (#27469)
As per
https://github.com/microsoft/playwright/actions/runs/6425074868/job/17446981722#step:7:168.

e.g. here:
2e4b4ad8be/package.json (L28-L31)
docs:
https://docs.npmjs.com/cli/v10/configuring-npm/package-json#repository

https://github.com/microsoft/playwright/issues/22555
2023-10-05 23:18:22 +00:00
Max Schmitt ce928cd12f
fix: make processRunner nullable (#27468)
This fixes:
```
D:\a\playwright\playwright\packages\playwright\lib\common\process.js:119
  await processRunner.gracefullyClose().catch(() => {});
                      ^

TypeError: Cannot read properties of undefined (reading 'gracefullyClose')
    at gracefullyCloseAndExit (D:\a\playwright\playwright\packages\playwright\lib\common\process.js:119:23)
    at process.<anonymous> (D:\a\playwright\playwright\packages\playwright\lib\common\process.js:81:11)
    at process.emit (node:events:513:28)
    at emit (node:internal/child_process:946:14)
    at processTicksAndRejections (node:internal/process/task_queues:84:21)
```

from
[here](https://github.com/microsoft/playwright/actions/runs/6424299724/job/17444659548#step:7:2936).

`gracefullyCloseAndExit` gets called via `__stop__` and wants to use
`processRunner` var which gets created during `__init__`. So its
`undefined` when `__stop__` gets called.
2023-10-05 22:59:20 +00:00
Pavel Feldman 70dbb9d83a
feat(trace): allow navigating from error to source (#27464) 2023-10-05 14:59:59 -07:00
Jim Hays dcc8dcca73
Fix various typos (Fixes #27396) (#27391)
Fixes https://github.com/microsoft/playwright/issues/27396
2023-10-04 19:56:42 -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
Yury Semikhatsky ac48a47d33
feat: toHaveAttribute without value (#27418)
This time not doing it in other languages due to unjustified generator
complexity.

Fixes #27341
2023-10-04 09:27:28 -07:00
Dmitry Gozman 65ce4cd213
feat: expose composedTest() instead of test._extendTest() (#27414) 2023-10-03 13:26:30 -07:00
Yury Semikhatsky bb8a102164
chore(types): add blob reporter to the known reporter types (#27371)
Closes https://github.com/microsoft/playwright/issues/27357
2023-09-29 15:15:18 -07:00
Dmitry Gozman 5deea65bf2
fix(test runner): move removing artifacts dir from stop() to onExit (#27364)
Fixes #27326.
2023-09-29 14:57:32 -07:00
Pavel Feldman d136b0aeb6
feat(step): allow boxing steps (#27334) 2023-09-29 09:44:00 -07:00
Pavel Feldman 4fd2b4adef
chore: bump the babel (#27348) 2023-09-28 17:12:57 -07:00
Pavel Feldman 2892467839
chore: delete temporary artifacts after test (#27332) 2023-09-27 16:29:21 -07:00
Yury Semikhatsky d198784f1a
fix(blob): use reporters from the merge config (#27301)
Fixes https://github.com/microsoft/playwright/issues/27281
2023-09-26 11:41:17 -07:00
Pavel Feldman 07e794eb83
chore: follow up to runnable change (#27300) 2023-09-26 08:57:14 -07:00
Dmitry Gozman c0dc2328aa
chore: use JobDispatcher helper in one more place (#27299) 2023-09-25 20:08:22 -07:00
Pavel Feldman 4e62468aee
chore: use closures to set current runnable (#27293) 2023-09-25 15:22:25 -07:00
Dmitry Gozman 32a50e2d90
chore(test runner): use helper method in JobDispatcher (#27278) 2023-09-25 11:05:49 -07:00
Dmitry Gozman 7bd8032439
docs: mention Locator.first in toBeVisible (#27292)
Fixes #26842.
2023-09-25 10:59:39 -07:00
Dmitry Gozman 66eb3043f5
feat(json report): expose startTime and duration (#27290)
Fixes #27183.
2023-09-25 10:58:55 -07:00
Pavel Feldman d6ec1ae399
chore: document chaining expect.extend (#27262)
Fixes https://github.com/microsoft/playwright/issues/15951
2023-09-22 13:56:59 -07:00
Pavel Feldman a6a0257c88
feat(expect): allow chaining expects (#27248) 2023-09-22 12:12:17 -07:00
Dmitry Gozman 49fd9500fe
fix: handle worker process start failure (#27249)
Worker process start failure is reported as a test error and skips other
tests from the group.
If happened during stop (e.g. from a Ctrl+C) before worker has fully
initialized, this error is ignored.

Drive-by: send SIGINT in tests to the whole tree, to better emulate
Ctrl+C behavior.
2023-09-22 10:57:35 -07:00
Dmitry Gozman ccaec034d8
chore(test runner): extract JobDispatcher (#26776) 2023-09-21 17:13:00 -07:00
Pavel Feldman 51a774f8a3
chore: include log in matcherResult (#27164) 2023-09-21 16:23:46 -07:00
Pavel Feldman 6b36a50969
chore: simplify expect zone wrapper (#27145) 2023-09-18 15:02:50 -07:00
Pavel Feldman 955be6bd61
chore: populate matcherResult for toHaveScreenshot (#27136)
Ref #26929
2023-09-18 09:12:23 -07:00
Pavel Feldman 9fe037fb63
chore: populate matcherResult in web assertions (#27133)
Ref https://github.com/microsoft/playwright/issues/26929
2023-09-16 14:24:10 -07:00
Dmitry Gozman 3bcf9687e6
fix(test runner): make sure auto worker fixtures run before auto test fixtures (#27131)
Fixes #27114.
2023-09-15 14:51:31 -07:00
Max Schmitt 0d44405762
fix: custom expect matchers on Locator/Page/APIResponse instance (#27117)
Fixes https://github.com/microsoft/playwright/issues/27113
2023-09-15 18:05:44 +02:00
Yury Semikhatsky ebf6a08290
fix: list tests only once (#27103)
Fixes #27087
2023-09-14 20:00:30 -07:00
David Paquette 3170963f42
fix: render JUnit attachment paths relative to outputFile (#27024) 2023-09-14 12:58:09 -07:00
Dmitry Gozman 603861c48d
fix: revert toMatchSnapshot deprecation (#27089)
- This reverts commit
8348f66107
landed in #26718.
- Update docs to point towards `toHaveScreenshot`.
2023-09-14 12:52:41 -07:00
Max Schmitt 4431a8366d
fix: collect stdio from forked processes (#27074)
A summary about the attempts we tried in
https://github.com/microsoft/playwright/pull/26931 for
https://github.com/microsoft/playwright/issues/26859 and
https://github.com/microsoft/playwright/issues/24591.

1. attempt: collect all the stdio from the worker host.
- this made it hard to capture the live console logs for the live trace
2. attempt: collect all the stdio from the worker host, but keep
proxying `process.{stdout,stderr}.write`.
- this solved the live console logs problem, since we could still listen
on them
- we found out about a race that the stdout/stderr streams can still
buffer data while the test already had finished
- we created a best effort flush implementation but didn't like the
complexity it introduced to the project
3. attempt: keep things like they are but also listen to stdio from the
worker host
- this solves the race of console.log in the test (things stay like they
are)
    - this keeps live trace working (things stay like they are)
- a known pitfall is that it could result in logs which don't end up in
the reporter onStdOut/onStdErr, but it is already a significant
improvement over how it was before.
      - before: they were not getting displayed
- after: they are getting displayed and there is a low likelihood that
they don't end up in the reporter API if the write happens slightly
before a test finished.

Closes #26931
Fixes #26859
Fixes #24591
2023-09-14 18:34:26 +02:00
Dmitry Gozman f9298cfff6
fix(tracing): unclash trace names between test and hooks (#27063)
Fixes #27048.
2023-09-13 19:56:40 -07:00
Yury Semikhatsky fac4560a82
chore(types): host, port in html reporter config (#27027) 2023-09-12 13:38:10 -07:00
Pavel Feldman 02c72e545b
feat(onEnd): allow overriding the exit code (#27010)
Fixes: https://github.com/microsoft/playwright/issues/26858
2023-09-12 13:37:30 -07:00
Pavel Feldman 91478ea316
chore: document new onEnd params (#27006) 2023-09-11 18:17:49 -07:00
Andrey Lushnikov 41cd9e183a
chore: cut 1.38.0 branch (#27004) 2023-09-11 18:16:16 -07:00
Pavel Feldman 80b9e02837
fix(trace): do not attach screenshots twice (#26971) 2023-09-08 18:00:12 -07:00
Yury Semikhatsky 2feae015aa
chore: remove details from markdown reports (#26961)
- remove error details from the reports
- collapse flaky tests by default
- limit comment to 65365 character

GitHub API has comment length limit 65536 chars:
```
Unhandled error: HttpError: Validation Failed: {"resource":"IssueComment","code":"unprocessable","field":"data","message":"Body is too long (maximum is 65536 characters)"}
```
2023-09-08 17:49:34 -07:00
Dmitry Gozman 186f86905c
chore: make @playwright/test depend on playwright (#26946) 2023-09-08 14:23:35 -07:00
Dmitry Gozman 36347e7fea
feat: make playwright package not install browsers automatically (#26672)
Additionally introduce `@playwright/browser-<browser>` packages that
just download the respective browser, but do not export anything.

References #26614.
2023-08-27 07:24:35 -07:00
Andrey Lushnikov a61431f6bb
chore: cut 1.37.0 branch (#26357) 2023-08-09 01:46:29 -07:00
Andrey Lushnikov a9560253f8
chore: cut 1.36.0 (#24104) 2023-07-07 13:01:17 -07:00
Andrey Lushnikov c3bc8e0620
chore: cut 1.35.0 (#23579) 2023-06-07 12:41:56 -07:00
Kristo Jorgenson a4a363f4f4
chore: upgrade @types/node to 16.x (#23429)
Co-authored-by: Max Schmitt <max@schmitt.mx>
2023-06-02 10:04:41 +02:00
Andrey Lushnikov b31511e0c9
chore: cut v1.34.0 (#23121) 2023-05-17 19:05:38 -07:00
Pavel Feldman 6b487ff49d
chore: remove cli from playwright-core (#22612)
Fixes https://github.com/microsoft/playwright/issues/22599
2023-04-25 11:19:37 -07:00
Andrey Lushnikov 4408738d9c
chore: cut 1.33.0 (#22600) 2023-04-24 12:48:02 -07:00
Andrey Lushnikov 32d33cb8d5
chore: cut 1.32 (#21773) 2023-03-17 19:36:43 -07:00
Dmitry Gozman e77e2d8c7f
chore: mark 1.32.0-next (#20929) 2023-02-15 16:15:42 -08:00
Dmitry Gozman 0cc0d168cd
chore: mark 1.31-next (#20268) 2023-01-20 19:29:14 -08:00
Andrey Lushnikov 0be1fc8559
chore: cut version 1.29 (#19489) 2022-12-15 11:22:35 -08:00
Andrey Lushnikov bc78db07df
chore: cut 1.28 branch (#18746) 2022-11-11 15:30:15 -08:00
Dmitry Gozman ed6ecbca2a
chore: cut v1.27.0 (#17859) 2022-10-05 15:30:35 -07:00
Andrey Lushnikov bc942ef9ea
chore: cut v1.26.0 (#17265) 2022-09-12 10:45:27 -07:00
Andrey Lushnikov 0c7f086096
chore: cut v1.25 branch (#16390) 2022-08-09 17:09:58 -07:00
Ross Wollman dd39ae0b85
chore: use default export across packages (#16360) 2022-08-08 13:30:07 -07:00
Andrey Lushnikov df9beb4045
chore: cut v1.24 (#15654) 2022-07-14 09:42:40 -07:00
Max Schmitt 3a61938628
chore: mark 1.24-next (#14857) 2022-06-21 19:32:15 +02:00
Pavel Feldman 6efb1ec40c
fix(ts): export types explicitly (#14428) 2022-05-26 13:09:32 -07:00
Andrey Lushnikov f7adbd83ee
chore: cut v1.22.0 (#14098) 2022-05-12 11:12:01 -07:00
Max Schmitt 37bee74ae5
chore: set minimum version to Node.js 14 (#13469) 2022-04-26 17:52:32 +02:00
Ross Wollman db7bd8ebd2
chore: don't auto-install browsers if global install (#13299) 2022-04-08 10:46:24 -07:00
Andrey Lushnikov 91333daf09
chore: cut v1.21.0 (#13405) 2022-04-07 18:16:22 -07:00