Update dependency @playwright/test to v1.62.1 #58

Open
renovate wants to merge 3 commits from renovate/playwright-test-1.x into master
Collaborator

This PR contains the following updates:

Package Type Update Change
@playwright/test (source) devDependencies minor 1.61.11.62.1

Release Notes

microsoft/playwright (@​playwright/test)

v1.62.1

Compare Source

Bug Fixes
  • #​41989 [Regression]: tsconfig "extends" bare specifier isn't resolved via node_modules walk-up like tsc (fatal since 1.62)
  • #​41998 [Regression]: directory-form tsconfig project references ("path": "../pkg") fail to resolve (fatal since 1.62)
  • #​41985 Accessibility snapshot drops button name when text is nested inside spans with aria-hidden SVG
  • #​42000 [Regression]: page.evaluate() arg of a branded primitive type (string & { brand }) no longer type-checks since 1.62
  • #​42013 [BUG]Image-type actionable elements are not presented in the snapshot.

v1.62.0

Compare Source

🧱 New component testing model

Component testing moves to a stories and galleries model.
A story wraps your component in one specific scenario — hard-coded props, mock data, providers — and a gallery page that you serve renders stories on demand.
The new fixtures.mount() fixture navigates to the gallery, mounts a story by id, and returns a Locator scoped to the story's root element:

test('click should expand', async ({ mount }) => {
  const component = await mount('components/Expandable/Stateful');
  await component.getByRole('button').click();
  await expect(component.getByTestId('expanded')).toHaveValue('true');
});

Pass a story type as a template argument to type-check its props, and use update(props) / unmount() on the returned locator to re-render or tear down within a test.

🛑 Cancel operations with AbortSignal

Most operations and web-first assertions now accept a signal option that takes an AbortSignal, letting you cancel long-running actions, navigations, waits, and assertions:

const controller = new AbortController();
setTimeout(() => controller.abort(), 1000);

await page.getByRole('button', { name: 'Submit' }).click({ signal: controller.signal });
await expect(page.getByText('Done')).toBeVisible({ signal: controller.signal });

Providing a signal does not disable the default timeout; pass timeout: 0 to disable it.

🖼️ WebP screenshots

expect(page).toHaveScreenshot() and expect(locator).toHaveScreenshot() can now store snapshots in the WebP format — just give the snapshot a .webp name:

// Visual comparisons store the golden snapshot as lossless WebP.
await expect(page).toHaveScreenshot('homepage.webp');

// Standalone screenshots can trade quality for size with lossy WebP.
await page.screenshot({ path: 'homepage.webp', quality: 50 });

page.screenshot() and [locator.screenshot() (https://playwright.dev/docs/api/class-locator#locator-screenshot) also accept webp as a type, where quality 100 (the default) is lossless and lower values use lossy compression.

🧩 Custom test filtering with Reporter.preprocess()

New reporter.preprocess() hook runs after the configuration is resolved and before reporter.onBegin(), letting a reporter mark individual tests as skipped, excluded, fixed, or failing through a TestRun object:

class MyReporter {
  async preprocess({ config, suite, testRun }) {
    for (const test of suite.allTests()) {
      if (shouldSkip(test))
        testRun.skip(test);
    }
  }
}

🔁 Isolated retries

New testConfig.retryStrategy controls when failed tests are retried.
The default 'immediate' retries as soon as a worker is free; 'isolated' runs all retries at the end, one by one in a single worker, to minimize interference with the rest of the suite:

// playwright.config.ts
export default defineConfig({
  retries: 2,
  retryStrategy: 'isolated',
});

New APIs

Browser and Context
  • New option credentials includes the context's virtual WebAuthn Credentials (passkeys) in the storage state, so they can be persisted and re-seeded into later contexts.
Actions
  • New scroll option ("auto" | "none") on actions to opt out of Playwright's automatic scroll-into-view.
Network
Evaluation
Command line & MCP
Reporters
  • The HTML report's Merge files grouping — previously only a UI toggle — can now be enabled from the config with the new mergeFiles reporter option:
// playwright.config.ts
export default defineConfig({
  reporter: [['html', { mergeFiles: true }]],
});

Announcements

  • ⚠️ Debian 11 is not supported anymore.

Browser Versions

  • Chromium 151.0.7922.34
  • Mozilla Firefox 153.0
  • WebKit 26.5

This version was also tested against the following stable channels:

  • Google Chrome 151
  • Microsoft Edge 151

Configuration

📅 Schedule: (UTC)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Renovate Bot.

This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [@playwright/test](https://playwright.dev) ([source](https://github.com/microsoft/playwright)) | devDependencies | minor | [`1.61.1` → `1.62.1`](https://renovatebot.com/diffs/npm/@playwright%2ftest/1.61.1/1.62.1) | --- ### Release Notes <details> <summary>microsoft/playwright (@&#8203;playwright/test)</summary> ### [`v1.62.1`](https://github.com/microsoft/playwright/releases/tag/v1.62.1) [Compare Source](https://github.com/microsoft/playwright/compare/v1.62.0...v1.62.1) ##### Bug Fixes - [#&#8203;41989](https://github.com/microsoft/playwright/issues/41989) \[Regression]: tsconfig "extends" bare specifier isn't resolved via node\_modules walk-up like tsc (fatal since 1.62) - [#&#8203;41998](https://github.com/microsoft/playwright/issues/41998) \[Regression]: directory-form tsconfig project references ("path": "../pkg") fail to resolve (fatal since 1.62) - [#&#8203;41985](https://github.com/microsoft/playwright/issues/41985) Accessibility snapshot drops button name when text is nested inside spans with aria-hidden SVG - [#&#8203;42000](https://github.com/microsoft/playwright/issues/42000) \[Regression]: page.evaluate() arg of a branded primitive type (string & { brand }) no longer type-checks since 1.62 - [#&#8203;42013](https://github.com/microsoft/playwright/issues/42013) \[BUG]Image-type actionable elements are not presented in the snapshot. ### [`v1.62.0`](https://github.com/microsoft/playwright/releases/tag/v1.62.0) [Compare Source](https://github.com/microsoft/playwright/compare/v1.61.1...v1.62.0) #### 🧱 New component testing model [Component testing](https://playwright.dev/docs/test-components) moves to a **stories and galleries** model. A **story** wraps your component in one specific scenario — hard-coded props, mock data, providers — and a **gallery** page that you serve renders stories on demand. The new [fixtures.mount()](https://playwright.dev/docs/api/class-fixtures#fixtures-mount) fixture navigates to the gallery, mounts a story by id, and returns a [Locator](https://playwright.dev/docs/api/class-locator) scoped to the story's root element: ```js test('click should expand', async ({ mount }) => { const component = await mount('components/Expandable/Stateful'); await component.getByRole('button').click(); await expect(component.getByTestId('expanded')).toHaveValue('true'); }); ``` Pass a story type as a template argument to type-check its props, and use `update(props)` / `unmount()` on the returned locator to re-render or tear down within a test. #### 🛑 Cancel operations with AbortSignal Most operations and web-first assertions now accept a `signal` option that takes an [`AbortSignal`](https://developer.mozilla.org/en-US/docs/Web/API/AbortSignal), letting you cancel long-running actions, navigations, waits, and assertions: ```js const controller = new AbortController(); setTimeout(() => controller.abort(), 1000); await page.getByRole('button', { name: 'Submit' }).click({ signal: controller.signal }); await expect(page.getByText('Done')).toBeVisible({ signal: controller.signal }); ``` Providing a signal does not disable the default timeout; pass `timeout: 0` to disable it. #### 🖼️ WebP screenshots [expect(page).toHaveScreenshot()](https://playwright.dev/docs/api/class-pageassertions#page-assertions-to-have-screenshot-1) and [expect(locator).toHaveScreenshot()](https://playwright.dev/docs/api/class-locatorassertions#locator-assertions-to-have-screenshot-1) can now store snapshots in the WebP format — just give the snapshot a `.webp` name: ```js // Visual comparisons store the golden snapshot as lossless WebP. await expect(page).toHaveScreenshot('homepage.webp'); // Standalone screenshots can trade quality for size with lossy WebP. await page.screenshot({ path: 'homepage.webp', quality: 50 }); ``` [page.screenshot()](https://playwright.dev/docs/api/class-page#page-screenshot) and \[locator.screenshot() (<https://playwright.dev/docs/api/class-locator#locator-screenshot>) also accept `webp` as a `type`, where quality `100` (the default) is lossless and lower values use lossy compression. #### 🧩 Custom test filtering with Reporter.preprocess() New [reporter.preprocess()](https://playwright.dev/docs/api/class-reporter#reporter-preprocess) hook runs after the configuration is resolved and before [reporter.onBegin()](https://playwright.dev/docs/api/class-reporter#reporter-on-begin), letting a reporter mark individual tests as skipped, excluded, fixed, or failing through a [TestRun](https://playwright.dev/docs/api/class-testrun) object: ```js class MyReporter { async preprocess({ config, suite, testRun }) { for (const test of suite.allTests()) { if (shouldSkip(test)) testRun.skip(test); } } } ``` #### 🔁 Isolated retries New [testConfig.retryStrategy](https://playwright.dev/docs/api/class-testconfig#test-config-retry-strategy) controls when failed tests are retried. The default `'immediate'` retries as soon as a worker is free; `'isolated'` runs all retries at the end, one by one in a single worker, to minimize interference with the rest of the suite: ```js // playwright.config.ts export default defineConfig({ retries: 2, retryStrategy: 'isolated', }); ``` #### New APIs ##### Browser and Context - New option [`credentials`](https://playwright.dev/docs/api/class-browsercontext#browser-context-storage-state-option-credentials) includes the context's virtual WebAuthn [Credentials](https://playwright.dev/docs/api/class-credentials) (passkeys) in the storage state, so they can be persisted and re-seeded into later contexts. ##### Actions - New `scroll` option (`"auto"` | `"none"`) on actions to opt out of Playwright's automatic scroll-into-view. ##### Network - New [apiResponse.timing()](https://playwright.dev/docs/api/class-apiresponse#api-response-timing) returns resource timing information for an API response. ##### Evaluation - New [locator.waitForFunction()](https://playwright.dev/docs/api/class-locator#locator-wait-for-function) waits until a function — called with the matching element — returns a truthy value. - [page.evaluate()](https://playwright.dev/docs/api/class-page#page-evaluate) and related methods now accept functions as evaluate arguments. - [page.addInitScript()](https://playwright.dev/docs/api/class-page#page-add-init-script) / [browserContext.addInitScript()](https://playwright.dev/docs/api/class-browsercontext#browser-context-add-init-script) now accept functions as init-script arguments. ##### Command line & MCP - Playwright now bundles the [Playwright MCP](https://playwright.dev/docs/getting-started-mcp) server and [`playwright-cli`](https://playwright.dev/docs/getting-started-cli), runnable via `npx playwright mcp` and `npx playwright cli`. ##### Reporters - The HTML report's **Merge files** grouping — previously only a UI toggle — can now be enabled from the config with the new `mergeFiles` reporter option: ```js // playwright.config.ts export default defineConfig({ reporter: [['html', { mergeFiles: true }]], }); ``` #### Announcements - ⚠️ Debian 11 is not supported anymore. #### Browser Versions - Chromium 151.0.7922.34 - Mozilla Firefox 153.0 - WebKit 26.5 This version was also tested against the following stable channels: - Google Chrome 151 - Microsoft Edge 151 </details> --- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - At any time (no schedule defined) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xMDQuMSIsInVwZGF0ZWRJblZlciI6IjQzLjEwNC4xIiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIiwibGFiZWxzIjpbXX0=-->
Update dependency @playwright/test to v1.62.1
Some checks failed
renovate/artifacts Artifact file update failure
agent/review Blockers: lockfile + Playwright image/Dockerfile still 1.61.1
nuxt-clients-e2e/pipeline/pr-master There was a failure building this commit
471571dd59
Author
Collaborator

⚠️ Artifact update problem

Renovate failed to update an artifact related to this branch. You probably do not want to merge this PR as-is.

♻ Renovate will retry this branch, including artifacts, only when one of the following happens:

  • any of the package files in this branch needs updating, or
  • the branch becomes conflicted, or
  • you click the rebase/retry checkbox if found above, or
  • you rename this PR's title to start with "rebase!" to trigger it manually

The artifact failure details are included below:

File name: tests/e2e/package-lock.json

### ⚠️ Artifact update problem Renovate failed to update an artifact related to this branch. You probably do not want to merge this PR as-is. ♻ Renovate will retry this branch, including artifacts, only when one of the following happens: - any of the package files in this branch needs updating, or - the branch becomes conflicted, or - you click the rebase/retry checkbox if found above, or - you rename this PR's title to start with "rebase!" to trigger it manually The artifact failure details are included below: ##### File name: tests/e2e/package-lock.json ``` ```
Collaborator

Review: renovate @playwright/test 1.61.1 → 1.62.1

Verdict: blockers — PR as-is will break e2e install and leaves Playwright versions out of sync with the documented contract.

Blockers

  1. tests/e2e/package-lock.json not updated — CI runs npm --prefix='./tests/e2e' ci (tests/e2e/Jenkinsfile). package.json asks for 1.62.1 while the lockfile still pins 1.61.1; npm ci will fail on version mismatch.
  2. Playwright image / Dockerfile still on 1.61.1 — README requires the Jenkins pod image, tests/e2e/Dockerfile, and @playwright/test to stay in lockstep. Still on mcr.microsoft.com/playwright:v1.61.1-jammy / @playwright/test@1.61.1 in:
    • tests/e2e/Jenkinsfile:14
    • tests/e2e/Dockerfile:1 and :7

Bump those (and regenerate tests/e2e/package-lock.json) to 1.62.1 in the same change, or land a coordinated Renovate PR that updates all of them together.

Suggestions / nits

  • None beyond the version alignment above; the single-line package.json bump itself is fine once companions match.
## Review: renovate `@playwright/test` 1.61.1 → 1.62.1 **Verdict:** blockers — PR as-is will break e2e install and leaves Playwright versions out of sync with the documented contract. ### Blockers 1. **`tests/e2e/package-lock.json` not updated** — CI runs `npm --prefix='./tests/e2e' ci` (`tests/e2e/Jenkinsfile`). `package.json` asks for `1.62.1` while the lockfile still pins `1.61.1`; `npm ci` will fail on version mismatch. 2. **Playwright image / Dockerfile still on 1.61.1** — README requires the Jenkins pod image, `tests/e2e/Dockerfile`, and `@playwright/test` to stay in lockstep. Still on `mcr.microsoft.com/playwright:v1.61.1-jammy` / `@playwright/test@1.61.1` in: - `tests/e2e/Jenkinsfile:14` - `tests/e2e/Dockerfile:1` and `:7` Bump those (and regenerate `tests/e2e/package-lock.json`) to **1.62.1** in the same change, or land a coordinated Renovate PR that updates all of them together. ### Suggestions / nits - None beyond the version alignment above; the single-line `package.json` bump itself is fine once companions match. <!-- agent-review:471571dd59ce628336f3e99a69106c72d234ced4 -->
fix(e2e): sync Playwright 1.62.1 lockfile, image, and Jenkins pod
All checks were successful
agent/review No blockers: Playwright 1.62.1 bump synced
nuxt-clients-e2e/pipeline/pr-master This commit looks good
ebc3cba6e5
Renovate bumped @playwright/test without updating package-lock or the
matching mcr.microsoft.com/playwright image pins used by npm ci / CI.
Collaborator

CI fix (attempt 1)

Root cause (nuxt-clients-e2e/jenkins @ 471571dd):

npm --prefix=./tests/e2e ci failed: package.json and package-lock.json out of sync — lock still had @playwright/test@1.61.1 / playwright@1.61.1 while package.json asked for 1.62.1. Playwright stage was skipped.

Change (pushed ebc3cba):

  • Regenerated tests/e2e/package-lock.json for @playwright/test@1.62.1
  • Bumped matching pins: tests/e2e/Jenkinsfile pod image, tests/e2e/Dockerfile (FROM + global install), README note → v1.62.1-jammy

Jenkins: https://jenkins.primne.com/job/nuxt-clients-e2e/job/PR-58/1/

## CI fix (attempt 1) **Root cause** (`nuxt-clients-e2e/jenkins` @ `471571dd`): > `npm --prefix=./tests/e2e ci` failed: package.json and package-lock.json out of sync — lock still had `@playwright/test@1.61.1` / `playwright@1.61.1` while package.json asked for `1.62.1`. Playwright stage was skipped. **Change** (pushed `ebc3cba`): - Regenerated `tests/e2e/package-lock.json` for `@playwright/test@1.62.1` - Bumped matching pins: `tests/e2e/Jenkinsfile` pod image, `tests/e2e/Dockerfile` (FROM + global install), README note → `v1.62.1-jammy` Jenkins: https://jenkins.primne.com/job/nuxt-clients-e2e/job/PR-58/1/ <!-- agent-ci-fix:1 -->
Collaborator

Review: LGTM

Verdict: no blockers — routine @playwright/test 1.61.1 → 1.62.1 bump with versions kept in sync.

Blockers

None.

Notes

  • package.json, lockfile, Dockerfile (FROM + global npm install), Jenkinsfile pod image, and README all land on 1.62.1 — matches the repo convention that image tag ≡ @playwright/test.
  • Lockfile integrity/resolved URLs look consistent; no secrets or unrelated churn.

Suggestions / nits

  • Lockfile now declares engines.node: >=20 for Playwright packages. Official mcr.microsoft.com/playwright:v1.62.1-jammy is fine; local e2e on Node 18 would fail — expected from upstream, not a PR issue.
## Review: LGTM **Verdict:** no blockers — routine `@playwright/test` 1.61.1 → 1.62.1 bump with versions kept in sync. ### Blockers None. ### Notes - `package.json`, lockfile, `Dockerfile` (`FROM` + global `npm install`), `Jenkinsfile` pod image, and README all land on **1.62.1** — matches the repo convention that image tag ≡ `@playwright/test`. - Lockfile integrity/resolved URLs look consistent; no secrets or unrelated churn. ### Suggestions / nits - Lockfile now declares `engines.node: >=20` for Playwright packages. Official `mcr.microsoft.com/playwright:v1.62.1-jammy` is fine; local e2e on Node 18 would fail — expected from upstream, not a PR issue. <!-- agent-review:ebc3cba6e5f181ea6f023360f02c12478b93ddd0 -->
Author
Collaborator

Edited/Blocked Notification

Renovate will not automatically rebase this PR, because it does not recognize the last commit author and assumes somebody else may have edited the PR.

You can manually request rebase by checking the rebase/retry box above.

⚠️ Warning: custom changes will be lost.

### Edited/Blocked Notification Renovate will not automatically rebase this PR, because it does not recognize the last commit author and assumes somebody else may have edited the PR. You can manually request rebase by checking the rebase/retry box above. ⚠️ **Warning**: custom changes will be lost.
Merge branch 'master' into renovate/playwright-test-1.x
All checks were successful
nuxt-clients-e2e/pipeline/pr-master This commit looks good
agent/review No blockers: Playwright 1.62.1 bump consistent
2df6a1a541
Collaborator

Review: LGTM (no blockers)

Renovate bump @playwright/test 1.61.1 → 1.62.1 with lockfile, Docker image, Jenkins pod image, and README kept in sync. No secrets, no app-layer changes, no broken contracts in the diff.

Blockers

None.

Suggestions / nits

  • Lockfile now requires node: >=20 for Playwright packages (was >=18). CI is fine (mcr.microsoft.com/playwright:v1.62.1-jammy). Local non-Docker runs need Node 20+.
## Review: LGTM (no blockers) Renovate bump `@playwright/test` **1.61.1 → 1.62.1** with lockfile, Docker image, Jenkins pod image, and README kept in sync. No secrets, no app-layer changes, no broken contracts in the diff. ### Blockers None. ### Suggestions / nits - Lockfile now requires `node: >=20` for Playwright packages (was `>=18`). CI is fine (`mcr.microsoft.com/playwright:v1.62.1-jammy`). Local non-Docker runs need Node 20+. <!-- agent-review:2df6a1a541fb578c249ba043a99835cf6c281f1b -->
All checks were successful
nuxt-clients-e2e/pipeline/pr-master This commit looks good
Required
Details
agent/review No blockers: Playwright 1.62.1 bump consistent
Required
This pull request has changes conflicting with the target branch.
  • tests/e2e/Dockerfile
View command line instructions

Manual merge helper

Use this merge commit message when completing the merge manually.

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin renovate/playwright-test-1.x:renovate/playwright-test-1.x
git switch renovate/playwright-test-1.x
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
3 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
sunsay/nuxt-clients!58
No description provided.