Commit Graph

1266 Commits

Author SHA1 Message Date
Rui Figueira
c80b851422
fix(codegen): prevent csp directive violations (#30366) 2024-04-23 07:33:12 -07:00
Max Schmitt
3f8bd5ffd1
devops: updated auth mode follow-ups (#30440) 2024-04-19 21:23:39 +02:00
Max Schmitt
ed0e1909e5
devops: change auth mode for flakiness/docker/driver uploads (#30405) 2024-04-19 20:36:15 +02:00
Mateusz Burzyński
82aefd24db
types: allow readonly tuples to be used as ReporterDescription (#30387)
This makes it easier to create helper functions like:
```ts
function createReporter(options: MyOptions) {
  return ['my-reporter', options] as const
}
```

At the moment, such functions can't be passed to `reporters` because a
readonly array is not assignable to the expected mutable array.
Playwirght certainly doesn't require those arrays to be mutable so it
would make sense to relax this.
2024-04-16 17:39:11 -07:00
Playwright Service
15c29f4a91
chore(driver): roll driver to recent Node.js LTS version (#30332)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2024-04-11 12:14:29 +02:00
Yury Semikhatsky
01d4293803
chore: class link generation in release notes (#30324) 2024-04-10 10:05:54 -07:00
Playwright Service
f67ad68bd2
chore(driver): roll driver to recent Node.js LTS version (#30306)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2024-04-09 12:37:26 +02:00
Max Schmitt
108b250d86
fix(docker): set default shell encoding (#30288)
This seems to be common practise, as per
[here](https://github.com/search?q=org%3Amicrosoft%20%2FENV%20LANG%3DC.UTF-8%2F&type=code).

Fixes https://github.com/microsoft/playwright/issues/30245
Fixes https://github.com/microsoft/playwright/issues/28642
2024-04-09 09:14:35 +02:00
Dmitry Gozman
d5907f4b13
feat(junit): includeProjectInTestName option (#30233)
Fixes #30246.
2024-04-04 11:04:51 -07:00
Yury Semikhatsky
5c5f0d77e4
chore: move implementation of Config and Project to TestConfig and TestProject (#30212)
Reference https://github.com/microsoft/playwright/issues/29768
2024-04-03 10:47:32 -07:00
Max Schmitt
010bc29a3c
chore: harden markdown link validation (#30221) 2024-04-03 17:51:32 +02:00
Yury Semikhatsky
63f876a335
chore: remove overrides for type and status (#30211)
Reference https://github.com/microsoft/playwright/issues/29768
2024-04-02 17:42:13 -07:00
Yury Semikhatsky
81bcf2a53b
docs: document FullReporter API (#30186)
* FullConfig split into FullConfig and ConfigInWorker
* FullProject split into FullProject and ProjectInWorker
* Tests can only access {Config, Project}InWorker, while reporters can
only access Full{Config,Project}. This will allow in the future to
change the reporter API independently from the tests.
* Added documentation for the 4 classes.
2024-04-02 16:15:02 -07:00
Yury Semikhatsky
3001c9ac73
fix: preserve test declaration order in html and merged report (#30159)
* Add `Suite.entries` that returns tests and suites in their declaration
order
* Exposed `Suite.type` and `TestCase.type` for discriminating between
different entry types.
* Blob report format is updated to store entries instead of separate
lists for suites and tests.
* Bumped blob format version to 2, added modernizer.

Fixes https://github.com/microsoft/playwright/issues/29984
2024-03-29 10:12:33 -07:00
Pavel Feldman
5912362089
chore: export MatcherReturnType type (#30139)
Fixes https://github.com/microsoft/playwright/issues/30131
2024-03-27 08:33:00 -07:00
Max Schmitt
3d4e0061bc
devops: fix roll_browser script
Signed-off-by: Max Schmitt <max@schmitt.mx>
2024-03-21 13:39:24 +01:00
Max Schmitt
2bd3e104ab
chore: remove run-driver wrapper in driver (#30027) 2024-03-20 21:15:46 +01:00
dependabot[bot]
980fa90d3c
chore(deps): bump black from 23.3.0 to 24.3.0 in /utils/doclint/linting-code-snippets/python (#30022) 2024-03-20 19:10:19 +01:00
Max Schmitt
0db1d40abc
fix(types): evaluate should not unpack return unions (#29971) 2024-03-18 16:42:33 +01:00
Pavel Feldman
94348bb3c5
chore: align test tree with vscode (#29864) 2024-03-14 15:44:35 -07:00
Max Schmitt
40b8bcb6ad
devops: mark Docker images as EOL (#29847)
As per https://github.com/microsoft/playwright-dotnet/pull/2879.
2024-03-07 20:18:24 +01:00
Renan Greca
4e0bd6286e
docs: Improved JSDoc for expect.toPass (#29722) 2024-03-01 10:51:23 -08:00
Stevan Freeborn
52b803ecf5
feat(trace mode): add on-first-failure mode for traces (#29647)
Implements the changes suggested in #29531
2024-02-28 14:39:18 -08:00
Max Schmitt
1a43adc506
chore: fix docs roll for functions without args follow-up (#29687) 2024-02-27 16:40:18 +01:00
Max Schmitt
03902d8e85
chore: fix docs roll for functions without args (#29684) 2024-02-27 07:21:35 -08:00
Pavel Feldman
9d0430fa26
chore: strengthen linting (#29669) 2024-02-26 16:52:28 -08:00
Max Schmitt
adccd39b01
docs(dotnet): type specific addLocatorHandler handler (#29586) 2024-02-22 23:53:09 +01:00
Pavel Feldman
a023cd1f57
fix(output): clear output before global setup (#29584) 2024-02-20 14:24:59 -08:00
Yury Semikhatsky
ce55cdffb8
fix: update path to cli.js in run-driver-win.cmd (#29538)
This was missed in https://github.com/microsoft/playwright/pull/29131

Fixes the following error in java on windows:

```
Error: Cannot find module 'C:\Users\RUNNER~1\AppData\Local\Temp\playwright-java-910508779801292985\package\lib\cli\cli.js'
    at Module._resolveFilename (node:internal/modules/cjs/loader:1144:15)
    at Module._load (node:internal/modules/cjs/loader:985:27)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:135:12)
    at node:internal/main/run_main_module:28:49 {
  code: 'MODULE_NOT_FOUND',
  requireStack: []
}
```
2024-02-16 19:35:11 -08:00
Max Schmitt
abd8502490
devops: do not publish sha-X Docker images (#29433) 2024-02-09 09:07:10 -08:00
Dmitry Gozman
3331a40647
feat(test runner): tags/annotations (#29248)
API changes:
- `test(title, details, body)` where details contain `tag` and
`annotation`.
- similar `details` property added to `test.skip`, `test.fail`,
`test.fixme`, `test.only`, `test.describe` and other `test.describe.*`
variations.
- `TestProject.tagFilter`/`TestConfig.tagFilter` that supports logical
tag expressions with `(`, `)`, `and`, `or` and `not`.
- `--tag` CLI option to filter by tags.
- New annotations are available in `TestInfo.annotations` and
`TestCase.annotations`.
- New tags are available in `TestCase.tags`.
    
Reporter changes:
- `json` reporter includes new tags in addition to old `@smoke`-style
tags. **Breaking**: tags are now listed with the leading `@` symbol.
- `html` reporter filters by old and new tags with the same `@smoke`
token.

Fixes #29229, fixes #23180.
2024-02-07 16:31:25 -08:00
Dmitry Gozman
fb29d90052
docs: remove overloads from test.* APIs (#29376) 2024-02-05 19:03:04 -08:00
Max Schmitt
2690e4c827
devops: fix Android tests (#29335) 2024-02-05 20:39:00 +01:00
Max Schmitt
f4b8ff9c95
fix: don't use git status for workspace consistency (#29224)
Motivation: We verify this already in the
[infra.yml](https://github.com/microsoft/playwright/blob/main/.github/workflows/infra.yml).
Doing it in `workspace.js` breaks the canary builds, because it has
stray files (package.json / package-lock.json).
2024-01-29 20:13:54 +01:00
Max Schmitt
d50479a76f
devops: switch to ISO date string for Canary versions (#29142)
Fixes https://github.com/microsoft/playwright/issues/28906
2024-01-24 17:13:00 +01:00
Pavel Feldman
cec2ff1772
chore: split cli processing into cli endpoint and program (#29131) 2024-01-23 15:22:09 -08:00
Dmitry Gozman
8e607d509f
fix(recorder): disallow external imports (#29129)
Previously, new `Recorder` instance was given an existing
`InjectedScript`. However, we built a separate source for
`InjectedScript` vs `Recorder`, and both bundles contain their own copy
of all helper modules, e.g. `roleUtils`.

This resulted in two copies of helper modules, which is troublesome for
any module-level globals like a top-level cache. Depending on whether
`Recorder` or `InjectedScript` called into the helper, they would access
the different value of a module global, which lead to bugs.

To prevent this, we force any external dependencies to be imported
through the `InjectedScript.utils`.
2024-01-23 11:29:40 -08:00
Yury Semikhatsky
fbf87ef904
fix: test.fail wrapper method (#29112)
Fixes https://github.com/microsoft/playwright/issues/29104
2024-01-22 19:47:27 -08:00
Pavel Feldman
03815b9eb1
chore: migrate to Node 18 lockFileVersion 3 (#29051) 2024-01-18 11:33:23 -08:00
Pavel Feldman
ee3960529e
fix(ct): allow passing date, url, bigint as properties (#29031)
Closes: https://github.com/microsoft/playwright/issues/29028,
https://github.com/microsoft/playwright/issues/29027
2024-01-17 20:43:28 -08:00
Pavel Feldman
bbe26dbdbb
chore: build import registry source (#28978) 2024-01-14 08:41:40 -08:00
Playwright Service
48517760e7
chore(driver): roll driver to recent Node.js LTS version (#28943) 2024-01-11 11:15:42 +01:00
Yury Semikhatsky
9c845365f7
chore: revert TestProject.botName for this release (#28670)
This is essentially a revert of f88288d71d

Reference https://github.com/microsoft/playwright/issues/27284
2023-12-15 09:48:34 -08:00
Pavel Feldman
d242ff67ef
chore: follow up to the stylePath review (#28636) 2023-12-14 08:19:24 -08:00
Max Schmitt
297cfdfc5f
chore: use ReadonlyArray for input parameters (#28564) 2023-12-12 16:22:48 -08:00
Max Schmitt
736c0efd43
chore: use more explicit awaits when returning in client (#28443) 2023-12-07 20:13:35 -08:00
Yury Semikhatsky
411abdb752
feat: add fileName option to blob reporter (#28525)
Reference https://github.com/microsoft/playwright/issues/27284
2023-12-06 20:44:06 -08:00
Yury Semikhatsky
f88288d71d
feat: config.botName for describing environment in the reports (#28507)
Reference https://github.com/microsoft/playwright/issues/27284
2023-12-06 13:34:16 -08:00
Max Schmitt
da6a36062e
docs(docker): add note on how to create your own (#28434)
https://github.com/microsoft/playwright/issues/28383

---------

Signed-off-by: Max Schmitt <max@schmitt.mx>
Co-authored-by: Dmitry Gozman <dgozman@gmail.com>
2023-11-30 14:04:42 -08:00
Playwright Service
24c52d5755
chore(driver): roll driver to recent Node.js LTS version (#28308)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2023-11-23 11:06:28 +01:00
Dmitry Gozman
bf4c315b09
fix(types): explicit ExpectMatcherState type, optional Expect arg (#28119)
Fixes #28035.
2023-11-13 18:37:50 -08:00
Pavel Feldman
1b3349d091
chore: use codemirror in the on-hover locator editor (#28090) 2023-11-10 22:00:28 -08:00
Max Schmitt
6d3913f459
chore: fix Ubuntu 22.04 WebKit on 20.04 host (#28068)
https://github.com/microsoft/playwright/issues/27313
2023-11-09 21:59:28 +01:00
Dmitry Gozman
2afd857642
chore: prepare to use codemirror in recorder (#28025) 2023-11-07 20:49:03 -08:00
Max Schmitt
f518684d89
chore: fix parameterized tests on the flakiness dashboard (#27900)
Abstract issue: I have parameterised tests via the titlePath (describe)
and they are not shown on the flakiness dashboard. Before #24486 only
title() was shown, after #24486 titlePath() will be displayed, but we
still did have the testId based on the test.title() and not
test.titlePath(). This ends up that they will still be treated as a
single spec.

After this change they are not treated as a single spec anymore and
treated as different ones:

<img width="891" alt="image"
src="https://github.com/microsoft/playwright/assets/17984549/f24284cd-5d94-4f7e-a45d-8c8e5eb537ef">

Note: This is tested.

Follow-up on https://github.com/microsoft/playwright/pull/24486.
2023-11-01 17:28:30 +01: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
Max Schmitt
841bb92049
chore: update Docker Node.js version to new LTS (20) (#27813)
Node.js 20 was promoted to LTS on 2023-10-24.

Fixes https://github.com/microsoft/playwright/issues/27812
2023-10-26 09:45:54 -07:00
Playwright Service
00d3b4bdc3
chore(driver): roll driver to recent Node.js LTS version (#27814)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2023-10-26 10:31:29 +02: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
fd82b2b3fa
feat(json report): add expected/unexpected/skipped/flaky stats (#27685)
Fixes #27498.
2023-10-18 12:55:31 -07:00
Playwright Service
86ce598dfa
chore(driver): roll driver to recent Node.js LTS version (#27652)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2023-10-17 14:58:35 +02:00
Max Schmitt
4b771f9d4b
chore: remove /ms-playwright-agent in focal Docker image (#27631)
This was missing in focal but was there in Jammy.


6b31b30df9/utils/docker/Dockerfile.jammy (L44)
2023-10-16 18:17:21 +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
Playwright Service
8595a6c25f
chore(driver): roll driver to recent Node.js LTS version (#27565)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2023-10-12 12:16:22 +02:00
Pavel Feldman
393bd36e0a
chore: composed->merge (#27555) 2023-10-11 13:56:27 -07:00
Dmitry Gozman
7447761fb7
fix(build): ignore empty bundle directories (#27491)
These are often left after some file moves.
2023-10-06 12:29:01 -07:00
Max Schmitt
293c85935a
devops: publish using NPM provenance feature (#27459)
As per
https://docs.npmjs.com/generating-provenance-statements#publishing-packages-with-provenance-via-github-actions.

We use Node.js 18 (LTS) to get NPM 9+.

Closes https://github.com/microsoft/playwright/issues/22555
2023-10-05 20:00:18 +00: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
Pavel Feldman
25f06575bf
docs: recommend using test stories in ct (#27440)
Closes https://github.com/microsoft/playwright/issues/27439
2023-10-04 19:48:26 -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
Yury Semikhatsky
c751bf135e
devops: stop using deprecated method of installing node (#27392)
Otherwise we see a warning for 1 minute every time during the script
run:

<img width="616" alt="image"
src="https://github.com/microsoft/playwright/assets/9798949/4593048c-a901-4db5-a15e-1b6dd1970625">


The instructions are taken from
https://github.com/nodesource/distributions#debian-and-ubuntu-based-distributions
2023-10-02 14:24:58 -07:00
Andrey Lushnikov
471d12ac7b
chore: keep linux browser deps script up-to-date (#27309)
References https://github.com/microsoft/playwright/issues/27255
2023-10-02 11:34:49 -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
Pavel Feldman
d136b0aeb6
feat(step): allow boxing steps (#27334) 2023-09-29 09:44:00 -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
a6a0257c88
feat(expect): allow chaining expects (#27248) 2023-09-22 12:12:17 -07:00
Playwright Service
59df916b8d
chore(driver): roll driver to recent Node.js LTS version (#27175)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2023-09-19 12:32:29 +02: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
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
5faa66912c
docs: add types to Python run() defs (#27044)
Fixes https://github.com/microsoft/playwright-python/issues/2071
2023-09-13 15:18:15 +02: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
Max Schmitt
466088215e
chore: clear NPM cache of Docker image (#27000) 2023-09-12 08:14:45 +02:00
Dmitry Gozman
186f86905c
chore: make @playwright/test depend on playwright (#26946) 2023-09-08 14:23:35 -07:00
Ivo Berger
f219f9fd41
devops: fix tags on jammy stable images (#26834) 2023-09-03 09:57:09 +02:00
Max Schmitt
cc30d72b0b
test: roll android chromium to 1190572 (#26807) 2023-08-31 18:08:27 +02:00
Pavel Feldman
34c6197f9e
chore: include start/endTime and duration in onEnd report callback (#26760)
Fixes https://github.com/microsoft/playwright/issues/23637
2023-08-29 10:56:21 -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
Pavel Feldman
eb9ef64e7d
fix(android): use domain socket suffix chrome can discover (#26724)
Fixes: https://github.com/microsoft/playwright/issues/26721
2023-08-25 19:30:09 -07:00
Dmitry Gozman
8348f66107
feat: deprecate toMatchSnapshot for buffers (#26718)
These are usually used for screenshots instead of toHaveScreenshot.
String-based snapshots are left as is.

<img width="836" alt="deprecated"
src="https://github.com/microsoft/playwright/assets/9881434/d02818da-7eea-47fc-8ea8-4104b0dd49b5">

---

Also deemphasized toMatchSnapshot throughout all docs.

Fixes #26612.
2023-08-25 18:20:01 -07:00
Dmitry Gozman
81cc39ea6e
feat(expect): narrow down available assertions for Page/Locator/APIResponse (#26658)
Fixes #26381.
2023-08-23 13:14:39 -07:00
Richard Blažo
bcc30bc71e
feat: add title for before and after hooks (#26523) 2023-08-21 09:50:22 -07:00
Marcin Strzyz
192b697488
chore: remove old webpack folder structure (#26560) 2023-08-19 16:16:44 -07:00
Pavel Feldman
576608b69d
chore: revert #24598 (#26484) 2023-08-15 11:29:33 -07:00
Max Schmitt
2deabefa71
fix: Locator.evaluateHandle types (#26469)
Fixes https://github.com/microsoft/playwright/issues/26449
2023-08-14 18:27:25 +02:00
Dmitry Gozman
c37dfb379b
docs: make sure usage comes after description when templating (#26420) 2023-08-10 14:48:26 -07:00
Playwright Service
b252f8ba27
chore(driver): roll driver to recent Node.js LTS version (#26399) 2023-08-10 12:25:32 +02:00
Pavel Feldman
08d6abab4a
chore: allow merging defineConfig (#26390) 2023-08-09 17:23:34 -07:00
Pavel Feldman
65ac0d5256
chore: add k8s grid deployments (#26359) 2023-08-08 18:46:32 -07:00