Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore(deps): update playwright monorepo to v1.39.0 #402

Merged
merged 3 commits into from
Oct 30, 2023

Conversation

renovate[bot]
Copy link
Contributor

@renovate renovate bot commented Sep 17, 2023

Mend Renovate

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
@playwright/test (source) 1.37.1 -> 1.39.0 age adoption passing confidence
playwright (source) 1.37.1 -> 1.39.0 age adoption passing confidence

Release Notes

microsoft/playwright (@​playwright/test)

v1.39.0

Compare Source

Add custom matchers to your expect

You can extend Playwright assertions by providing custom matchers. These matchers will be available on the expect object.

import { expect as baseExpect } from '@​playwright/test';
export const expect = baseExpect.extend({
  async toHaveAmount(locator: Locator, expected: number, options?: { timeout?: number }) {
    // ... see documentation for how to write matchers.
  },
});

test('pass', async ({ page }) => {
  await expect(page.getByTestId('cart')).toHaveAmount(5);
});

See the documentation for a full example.

Merge test fixtures

You can now merge test fixtures from multiple files or modules:

import { mergeTests } from '@​playwright/test';
import { test as dbTest } from 'database-test-utils';
import { test as a11yTest } from 'a11y-test-utils';

export const test = mergeTests(dbTest, a11yTest);
import { test } from './fixtures';

test('passes', async ({ database, page, a11y }) => {
  // use database and a11y fixtures.
});

Merge custom expect matchers

You can now merge custom expect matchers from multiple files or modules:

import { mergeTests, mergeExpects } from '@​playwright/test';
import { test as dbTest, expect as dbExpect } from 'database-test-utils';
import { test as a11yTest, expect as a11yExpect } from 'a11y-test-utils';

export const test = mergeTests(dbTest, a11yTest);
export const expect = mergeExpects(dbExpect, a11yExpect);
import { test, expect } from './fixtures';

test('passes', async ({ page, database }) => {
  await expect(database).toHaveDatabaseUser('admin');
  await expect(page).toPassA11yAudit();
});

Hide implementation details: box test steps

You can mark a test.step() as "boxed" so that errors inside it point to the step call site.

async function login(page) {
  await test.step('login', async () => {
    // ...
  }, { box: true });  // Note the "box" option here.
}
Error: Timed out 5000ms waiting for expect(locator).toBeVisible()
  ... error details omitted ...

  14 |   await page.goto('https://github.com/login');
> 15 |   await login(page);
     |         ^
  16 | });

See test.step() documentation for a full example.

New APIs

Browser Versions

  • Chromium 119.0.6045.9
  • Mozilla Firefox 118.0.1
  • WebKit 17.4

This version was also tested against the following stable channels:

  • Google Chrome 118
  • Microsoft Edge 118

v1.38.1

Compare Source

Highlights

https://github.com/microsoft/playwright/issues/27071 - expect(value).toMatchSnapshot() deprecation announcement on V1.38
https://github.com/microsoft/playwright/issues/27072 - [BUG] PWT trace viewer fails to load trace and throws TypeErrorhttps://github.com/microsoft/playwright/issues/270733 - [BUG] RangeError: Invalid time valuhttps://github.com/microsoft/playwright/issues/2708787 - [REGRESSION]: npx playwright test --list prints all tests twihttps://github.com/microsoft/playwright/issues/27113113 - [REGRESSION]: No longer able to extend PlaywrightTest.Matchers type for locators and pahttps://github.com/microsoft/playwright/issues/271447144 - [BUG]can not display thttps://github.com/microsoft/playwright/issues/2716327163 - [REGRESSION] Single Quote Wrongly Escaped by Locator When Using Unicodehttps://github.com/microsoft/playwright/issues/27181/27181 - [BUG] evaluate serializing fails at 1.38

Browser Versions
  • Chromium 117.0.5938.62
  • Mozilla Firefox 117.0
  • WebKit 17.0

This version was also tested against the following stable channels:

  • Google Chrome 116
  • Microsoft Edge 116

v1.38.0

Compare Source

UI Mode Updates

Playwright UI Mode

  1. Zoom into time range.
  2. Network panel redesign.

New APIs

  • [browserContext.on('weberror')][browserContext.on('weberror')]
  • [locator.pressSequentially()][locator.pressSequentially()]
  • The [reporter.onEnd()][reporter.onEnd()] now reports startTime and total run duration.

Deprecations

  • The following methods were deprecated: [page.type()][page.type()], [frame.type()][frame.type()], [locator.type()][locator.type()] and [elementHandle.type()][elementHandle.type()].
    Please use [locator.fill()][locator.fill()] instead which is much faster. Use [locator.pressSequentially()][locator.pressSequentially()] only if there is a
    special keyboard handling on the page, and you need to press keys one-by-one.

Breaking Changes: Playwright no longer downloads browsers automatically

[!NOTE]
If you are using @playwright/test package, this change does not affect you.

Playwright recommends to use @playwright/test package and download browsers via npx playwright install command. If you are following this recommendation, nothing has changed for you.

However, up to v1.38, installing the playwright package instead of @playwright/test did automatically download browsers. This is no longer the case, and we recommend to explicitly download browsers via npx playwright install command.

v1.37 and earlier

playwright package was downloading browsers during npm install, while @playwright/test was not.

v1.38 and later

playwright and @playwright/test packages do not download browsers during npm install.

Recommended migration

Run npx playwright install to download browsers after npm install. For example, in your CI configuration:

- run: npm ci
- run: npx playwright install --with-deps

Alternative migration option - not recommended

Add @playwright/browser-chromium, @playwright/browser-firefox and @playwright/browser-webkit as a dependency. These packages download respective browsers during npm install. Make sure you keep the version of all playwright packages in sync:

// package.json
{
  "devDependencies": {
    "playwright": "1.38.0",
    "@​playwright/browser-chromium": "1.38.0",
    "@​playwright/browser-firefox": "1.38.0",
    "@​playwright/browser-webkit": "1.38.0"
  }
}
Browser Versions
  • Chromium 117.0.5938.62
  • Mozilla Firefox 117.0
  • WebKit 17.0

This version was also tested against the following stable channels:

  • Google Chrome 116
  • Microsoft Edge 116

Configuration

📅 Schedule: Branch creation - "after 8pm every weekday,before 7pm on Sunday" (UTC), Automerge - At any time (no schedule defined).

🚦 Automerge: Enabled.

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

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


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

This PR has been generated by Mend Renovate. View repository job log here.

@renovate renovate bot enabled auto-merge (rebase) September 17, 2023 05:02
@renovate renovate bot force-pushed the renovate/playwright-monorepo branch 7 times, most recently from 785454f to ec2eb33 Compare September 21, 2023 04:03
@renovate renovate bot changed the title chore(deps): update playwright monorepo to v1.38.0 chore(deps): update playwright monorepo to v1.38.1 Sep 21, 2023
@renovate renovate bot force-pushed the renovate/playwright-monorepo branch 10 times, most recently from 294e4c9 to c9b8d2e Compare September 28, 2023 01:15
@renovate renovate bot force-pushed the renovate/playwright-monorepo branch 9 times, most recently from 0836c11 to 10ab85b Compare October 4, 2023 03:49
@renovate renovate bot force-pushed the renovate/playwright-monorepo branch 7 times, most recently from a22bcb9 to 4d0d518 Compare October 24, 2023 02:08
@renovate renovate bot force-pushed the renovate/playwright-monorepo branch 9 times, most recently from 90a5cc3 to fb419da Compare October 29, 2023 20:33
@renovate renovate bot force-pushed the renovate/playwright-monorepo branch 2 times, most recently from 2021530 to f6fdf4c Compare October 30, 2023 10:25
@timonmasberg timonmasberg force-pushed the renovate/playwright-monorepo branch from f6fdf4c to 068d8a3 Compare October 30, 2023 11:33
@renovate
Copy link
Contributor Author

renovate bot commented Oct 30, 2023

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.

@sonarqubecloud
Copy link

Kudos, SonarCloud Quality Gate passed!    Quality Gate passed

Bug A 0 Bugs
Vulnerability A 0 Vulnerabilities
Security Hotspot A 0 Security Hotspots
Code Smell A 0 Code Smells

No Coverage information No Coverage information
No Duplication information No Duplication information

auto-merge was automatically disabled October 30, 2023 12:59

Rebase failed

@timonmasberg timonmasberg merged commit c187dc8 into main Oct 30, 2023
9 checks passed
@timonmasberg timonmasberg deleted the renovate/playwright-monorepo branch October 30, 2023 12:59
@timonmasberg
Copy link
Member

🎉 This PR is included in version 1.0.0 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant