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

Update dependency @playwright/test to v1.40.1 #3605

Closed
wants to merge 21 commits into from

Conversation

openverse-bot
Copy link
Collaborator

@openverse-bot openverse-bot commented Jan 1, 2024

This PR contains the following updates:

Package Type Update Change
@playwright/test (source) devDependencies minor 1.30.0 -> 1.40.1

Release Notes

microsoft/playwright (@​playwright/test)

v1.40.1

Compare Source

Highlights

https://github.com/microsoft/playwright/issues/28319 - [REGRESSION]: Version 1.40.0 Produces corrupted traceshttps://github.com/microsoft/playwright/issues/283711 - [BUG] The color of the 'ok' text did not change to green in the vs code test results sectiohttps://github.com/microsoft/playwright/issues/2832121 - [BUG] Ambiguous test outcome and status for serial mohttps://github.com/microsoft/playwright/issues/28362362 - [BUG] Merging blobs ends up in Error: Cannot create a string longer than 0x1fffffe8 characthttps://github.com/microsoft/playwright/pull/282398239 - fix: collect all errors in removeFolders

Browser Versions
  • Chromium 120.0.6099.28
  • Mozilla Firefox 119.0
  • WebKit 17.4

This version was also tested against the following stable channels:

  • Google Chrome 119
  • Microsoft Edge 119

v1.40.0

Compare Source

Test Generator Update

Playwright Test Generator

New tools to generate assertions:

Here is an example of a generated test with assertions:

import { test, expect } from '@​playwright/test';

test('test', async ({ page }) => {
  await page.goto('https://playwright.dev/');
  await page.getByRole('link', { name: 'Get started' }).click();
  await expect(page.getByLabel('Breadcrumbs').getByRole('list')).toContainText('Installation');
  await expect(page.getByLabel('Search')).toBeVisible();
  await page.getByLabel('Search').click();
  await page.getByPlaceholder('Search docs').fill('locator');
  await expect(page.getByPlaceholder('Search docs')).toHaveValue('locator');
});

New APIs

Other Changes

Browser Versions

  • Chromium 120.0.6099.28
  • Mozilla Firefox 119.0
  • WebKit 17.4

This version was also tested against the following stable channels:

  • Google Chrome 119
  • Microsoft Edge 119

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

v1.37.1

Compare Source

Highlights

https://github.com/microsoft/playwright/issues/26496 - [REGRESSION] webServer stdout is always getting printedhttps://github.com/microsoft/playwright/issues/264922 - [REGRESSION] test.only with project dependency is not working

Browser Versions

  • Chromium 116.0.5845.82
  • Mozilla Firefox 115.0
  • WebKit 17.0

This version was also tested against the following stable channels:

  • Google Chrome 115
  • Microsoft Edge 115

v1.37.0

Compare Source

Watch the overview: Playwright 1.36 & 1.37

✨ New tool to merge reports

If you run tests on multiple shards, you can now merge all reports in a single HTML report (or any other report)
using the new merge-reports CLI tool.

Using merge-reports tool requires the following steps:

  1. Adding a new "blob" reporter to the config when running on CI:

    export default defineConfig({
      testDir: './tests',
      reporter: process.env.CI ? 'blob' : 'html',
    });

    The "blob" reporter will produce ".zip" files that contain all the information
    about the test run.

  2. Copying all "blob" reports in a single shared location and running npx playwright merge-reports:

    npx playwright merge-reports --reporter html ./all-blob-reports

Read more in our documentation.

📚 Debian 12 Bookworm Support

Playwright now supports Debian 12 Bookworm on both x86_64 and arm64 for Chromium, Firefox and WebKit.
Let us know if you encounter any issues!

Linux support looks like this:

Ubuntu 20.04 Ubuntu 22.04 Debian 11 Debian 12
Chromium
WebKit
Firefox

🌈 UI Mode Updates

  • UI Mode now respects project dependencies. You can control which dependencies to respect by checking/unchecking them in a projects list.
  • Console logs from the test are now displayed in the Console tab.

Browser Versions

  • Chromium 116.0.5845.82
  • Mozilla Firefox 115.0
  • WebKit 17.0

This version was also tested against the following stable channels:

  • Google Chrome 115
  • Microsoft Edge 115

v1.36.2: 1.36.2

Compare Source

Highlights

https://github.com/microsoft/playwright/issues/24316 - [REGRESSION] Character classes are not working in globs in 1.36

Browser Versions
  • Chromium 115.0.5790.75
  • Mozilla Firefox 115.0
  • WebKit 17.0

This version was also tested against the following stable channels:

  • Google Chrome 114
  • Microsoft Edge 114

v1.36.1

Compare Source

Highlights

https://github.com/microsoft/playwright/issues/24184 - [REGRESSION]: Snapshot name contains some random string after test name when tests are run in container

Browser Versions
  • Chromium 115.0.5790.75
  • Mozilla Firefox 115.0
  • WebKit 17.0

This version was also tested against the following stable channels:

  • Google Chrome 114
  • Microsoft Edge 114

v1.36.0

Compare Source

Watch the overview: Playwright 1.36 & 1.37

Highlights

🏝️ Summer maintenance release.

Browser Versions
  • Chromium 115.0.5790.75
  • Mozilla Firefox 115.0
  • WebKit 17.0

This version was also tested against the following stable channels:

  • Google Chrome 114
  • Microsoft Edge 114

v1.35.1

Compare Source

Highlights

https://github.com/microsoft/playwright/issues/23622 - [Docs] Provide a description how to correctly use expect.configure with poll parameterhttps://github.com/microsoft/playwright/issues/236666 - [BUG] Live Trace does not work with Codespacehttps://github.com/microsoft/playwright/issues/2369393 - [BUG] attachment steps are not hidden inside expect.toHaveScreenshot()

Browser Versions
  • Chromium 115.0.5790.13
  • Mozilla Firefox 113.0
  • WebKit 16.4

This version was also tested against the following stable channels:

  • Google Chrome 114
  • Microsoft Edge 114

v1.35.0

Compare Source

Playwright v1.35 updates

Highlights
  • UI mode is now available in VSCode Playwright extension via a new "Show trace viewer" button:

    Playwright UI Mode

  • UI mode and trace viewer mark network requests handled with page.route() and browserContext.route() handlers, as well as those issued via the API testing:

    Trace Viewer

  • New option maskColor for methods page.screenshot(), locator.screenshot(), expect(page).toHaveScreenshot() and expect(locator).toHaveScreenshot() to change default masking color:

    await page.goto('https://playwright.dev');
    await expect(page).toHaveScreenshot({
      mask: [page.locator('img')],
      maskColor: '#​00FF00', // green
    });
  • New uninstall CLI command to uninstall browser binaries:

    $ npx playwright uninstall # remove browsers installed by this installation
    $ npx playwright uninstall --all # remove all ever-install Playwright browsers
  • Both UI mode and trace viewer now could be opened in a browser tab:

    $ npx playwright test --ui-port 0 # open UI mode in a tab on a random port
    $ npx playwright show-trace --port 0 # open trace viewer in tab on a random port
⚠️ Breaking changes
  • playwright-core binary got renamed from playwright to playwright-core. So if you use playwright-core CLI, make sure to update the name:

    $ npx playwright-core install # the new way to install browsers when using playwright-core

    This change does not affect @playwright/test and playwright package users.

Browser Versions
  • Chromium 115.0.5790.13
  • Mozilla Firefox 113.0
  • WebKit 16.4

This version was also tested against the following stable channels:

  • Google Chrome 114
  • Microsoft Edge 114

v1.34.3

Compare Source

Highlights

https://github.com/microsoft/playwright/issues/23228 - [BUG] Getting "Please install @​playwright/test package..." after upgrading from 1.34.0 to 1.34.1

Browser Versions

  • Chromium 114.0.5735.26
  • Mozilla Firefox 113.0
  • WebKit 16.4

This version was also tested against the following stable channels:

  • Google Chrome 113
  • Microsoft Edge 113

v1.34.2

Compare Source

Highlights

https://github.com/microsoft/playwright/issues/23225 - [BUG] VSCode Extension broken with Playwright 1.34.1

Browser Versions

  • Chromium 114.0.5735.26
  • Mozilla Firefox 113.0
  • WebKit 16.4

This version was also tested against the following stable channels:

  • Google Chrome 113
  • Microsoft Edge 113

v1.34.1

Compare Source

Highlights

https://github.com/microsoft/playwright/issues/23186 - [BUG] Container image for v1.34.0 missing library for webkithttps://github.com/microsoft/playwright/issues/232066 - [BUG] Unable to install supported browsers for v1.34.0 from playwright-corhttps://github.com/microsoft/playwright/issues/2320707 - [BUG] importing ES Module JSX component is broken since 1.34

Browser Versions

  • Chromium 114.0.5735.26
  • Mozilla Firefox 113.0
  • WebKit 16.4

This version was also tested against the following stable channels:

  • Google Chrome 113
  • Microsoft Edge 113

v1.34.0

Compare Source

Playwright v1.33 & v1.34 updates

Highlights
  • UI Mode now shows steps, fixtures and attachments:

  • New property testProject.teardown to specify a project that needs to run after this
    and all dependent projects have finished. Teardown is useful to cleanup any resources acquired by this project.

    A common pattern would be a setup dependency with a corresponding teardown:

    // playwright.config.ts
    import { defineConfig } from '@​playwright/test';
    
    export default defineConfig({
      projects: [
        {
          name: 'setup',
          testMatch: /global.setup\.ts/,
          teardown: 'teardown',
        },
        {
          name: 'teardown',
          testMatch: /global.teardown\.ts/,
        },
        {
          name: 'chromium',
          use: devices['Desktop Chrome'],
          dependencies: ['setup'],
        },
        {
          name: 'firefox',
          use: devices['Desktop Firefox'],
          dependencies: ['setup'],
        },
        {
          name: 'webkit',
          use: devices['Desktop Safari'],
          dependencies: ['setup'],
        },
      ],
    });
  • New method expect.configure to create pre-configured expect instance with its own defaults such as timeout and soft.

    const slowExpect = expect.configure({ timeout: 10000 });
    await slowExpect(locator).toHaveText('Submit');
    
    // Always do soft assertions.
    const softExpect = expect.configure({ soft: true });
  • New options stderr and stdout in testConfig.webServer to configure output handling:

    // playwright.config.ts
    import { defineConfig } from '@​playwright/test';
    
    export default defineConfig({
      // Run your local dev server before starting the tests
      webServer: {
        command: 'npm run start',
        url: 'http://127.0.0.1:3000',
        reuseExistingServer: !process.env.CI,
        stdout: 'pipe',
        stderr: 'pipe',
      },
    });
  • New locator.and() to create a locator that matches both locators.

    const button = page.getByRole('button').and(page.getByTitle('Subscribe'));
  • New events browserContext.on('console') and browserContext.on('dialog') to subscribe to any dialogs
    and console messages from any page from the given browser context. Use the new methods consoleMessage.page()
    and dialog.page() to pin-point event source.

⚠️ Breaking changes
  • npx playwright test no longer works if you install both playwright and @playwright/test. There's no need
    to install both, since you can always import browser automation APIs from @playwright/test directly:

    // automation.ts
    import { chromium, firefox, webkit } from '@​playwright/test';
    /* ... */
  • Node.js 14 is no longer supported since it reached its end-of-life on April 30, 2023.

Browser Versions
  • Chromium 114.0.5735.26
  • Mozilla Firefox 113.0
  • WebKit 16.4

This version was also tested against the following stable channels:

  • Google Chrome 113
  • Microsoft Edge 113

v1.33.0

Compare Source

Playwright v1.33 & v1.34 updates

Locators Update
  • Use [locator.or()][locator.or()] to create a locator that matches either of the two locators.
    Consider a scenario where you'd like to click on a "New email" button, but sometimes a security settings dialog shows up instead.
    In this case, you can wait for either a "New email" button, or a dialog and act accordingly:

    const newEmail = page.getByRole('button', { name: 'New' });
    const dialog = page.getByText('Confirm security settings');
    await expect(newEmail.or(dialog)).toBeVisible();
    if (await dialog.isVisible())
      await page.getByRole('button', { name: 'Dismiss' }).click();
    await newEmail.click();
  • Use new options hasNot and hasNotText in [locator.filter()][locator.filter()]
    to find elements that do not match certain conditions.

    const rowLocator = page.locator('tr');
    await rowLocator
        .filter({ hasNotText: 'text in column 1' })
        .filter({ hasNot: page.getByRole('button', { name: 'column 2 button' }) })
        .screenshot();
  • Use new web-first assertion [locatorAssertions.toBeAttached()][locatorAssertions.toBeAttached()] to ensure that the element
    is present in the page's DOM. Do not confuse with the [locatorAssertions.toBeVisible()][locatorAssertions.toBeVisible()] that ensures that
    element is both attached & visible.

New APIs
  • [locator.or()][locator.or()]
  • New option hasNot in [locator.filter()][locator.filter()]
  • New option hasNotText in [locator.filter()][locator.filter()]
  • [locatorAssertions.toBeAttached()][locatorAssertions.toBeAttached()]
  • New option timeout in [route.fetch()][route.fetch()]
  • [reporter.onExit()][reporter.onExit()]
⚠️ Breaking change
  • The mcr.microsoft.com/playwright:v1.33.0 now serves a Playwright image based on Ubuntu Jammy.
    To use the focal-based image, please use mcr.microsoft.com/playwright:v1.33.0-focal instead.
Browser Versions
  • Chromium 113.0.5672.53
  • Mozilla Firefox 112.0
  • WebKit 16.4

This version was also tested against the following stable channels:

  • Google Chrome 112
  • Microsoft Edge 112

v1.32.3

Compare Source

Highlights

https://github.com/microsoft/playwright/issues/22144 - [BUG] WebServer only starting after timeouthttps://github.com/microsoft/playwright/pull/221911 - chore: allow reusing browser between the testshttps://github.com/microsoft/playwright/issues/222155 - [BUG] Tests failing in toPass often marked as passed

Browser Versions

  • Chromium 112.0.5615.29
  • Mozilla Firefox 111.0
  • WebKit 16.4

This version was also tested against the following stable channels:

  • Google Chrome 111
  • Microsoft Edge 111

v1.32.2

Compare Source

Highlights

https://github.com/microsoft/playwright/issues/21993 - [BUG] Browser crash when using Playwright VSC extension and trace-viewer enabled in confighttps://github.com/microsoft/playwright/issues/220033 - [Feature] Make Vue component mount props less restrictivhttps://github.com/microsoft/playwright/issues/2208989 - [REGRESSION]: Tests failing with "Error: tracing.stopChunk"

Browser Versions

  • Chromium 112.0.5615.29
  • Mozilla Firefox 111.0
  • WebKit 16.4

This version was also tested against the following stable channels:

  • Google Chrome 111
  • Microsoft Edge 111

v1.32.1

Compare Source

Highlights

https://github.com/microsoft/playwright/issues/21832 - [BUG] Trace is not opening on specific broken locatorhttps://github.com/microsoft/playwright/issues/218977 - [BUG] --ui fails to open with error reading mainFrame from an undefined this._pahttps://github.com/microsoft/playwright/issues/21918918 - [BUG]: UI mode, skipped tests not being fohttps://github.com/microsoft/playwright/issues/219411941 - [BUG] UI mode does not show webServer startup erhttps://github.com/microsoft/playwright/issues/2195321953 - [BUG] Parameterized tests are not displayed in the UI mode

Browser Versions

  • Chromium 112.0.5615.29
  • Mozilla Firefox 111.0
  • WebKit 16.4

This version was also tested against the following stable channels:

  • Google Chrome 111
  • Microsoft Edge 111

v1.32.0

Compare Source

📣 Introducing UI Mode (preview)

Playwright v1.32 updates

New UI Mode lets you explore, run and debug tests. Comes with a built-in watch mode.

Playwright UI Mode

Engage with a new flag --ui:

npx playwright test --ui

New APIs

⚠️ Breaking change in component tests

Note: component tests only, does not affect end-to-end tests.

  • @playwright/experimental-ct-react now supports React 18 only.
  • If you're running component tests with React 16 or 17, please replace
    @playwright/experimental-ct-react with @playwright/experimental-ct-react17.

Browser Versions

  • Chromium 112.0.5615.29
  • Mozilla Firefox 111.0
  • WebKit 16.4

This version was also tested against the following stable channels:

  • Google Chrome 111
  • Microsoft Edge 111

v1.31.2

Compare Source

Highlights

https://github.com/microsoft/playwright/issues/20784 - [BUG] ECONNREFUSED on GitHub Actions with Node 18https://github.com/microsoft/playwright/issues/211455 - [REGRESSION]: firefox-1378 times out on await page.reload() when URL contains a #hashttps://github.com/microsoft/playwright/issues/2122626 - [BUG] Playwright seems to get stuck when using shard option and last test is skipphttps://github.com/microsoft/playwright/issues/21227227 - Using the webServer config with a Vite dev servehttps://github.com/microsoft/playwright/issues/21312312 - throw if defineConfig is not used for component testing

Browser Versions

  • Chromium 111.0.5563.19
  • Mozilla Firefox 109.0
  • WebKit 16.4

This version was also tested against the following stable channels:

  • Google Chrome 110
  • Microsoft Edge 110

v1.31.1

Compare Source

Highlights

https://github.com/microsoft/playwright/issues/21093 - [Regression v1.31] Headless Windows shows cascading cmd windowshttps://github.com/microsoft/playwright/pull/211066 - fix(loader): experimentalLoader with node@18

Browser Versions

  • Chromium 111.0.5563.19
  • Mozilla Firefox 109.0
  • WebKit 16.4

This version was also tested against the following stable channels:

  • Google Chrome 110
  • Microsoft Edge 110

v1.31.0

Compare Source

New APIs

  • New property TestProject.dependencies to configure dependencies between projects.

    Using dependencies allows global setup to produce traces and other artifacts,
    see the setup steps in the test report and more.

    // playwright.config.ts
    import { defineConfig } from '@​playwright/test';
    
    export default defineConfig({
      projects: [
        {
          name: 'setup',
          testMatch: /global.setup\.ts/,
        },
        {
          name: 'chromium',
          use: devices['Desktop Chrome'],
          dependencies: ['setup'],
        },
        {
          name: 'firefox',
          use: devices['Desktop Firefox'],
          dependencies: ['setup'],
        },
        {
          name: 'webkit',
          use: devices['Desktop Safari'],
          dependencies: ['setup'],
        },
      ],
    });
  • New assertion expect(locator).toBeInViewport() ensures that locator points to an element that intersects viewport, according to the intersection observer API.

    const button = page.getByRole('button');
    
    // Make sure at least some part of element intersects viewport.
    await expect(button).toBeInViewport();
    
    // Make sure element is fully outside of viewport.
    await expect(button).not.toBeInViewport();
    
    // Make sure that at least half of the element intersects viewport.
    await expect(button).toBeInViewport({ ratio: 0.5 });

Miscellaneous

  • DOM snapshots in trace viewer can be now opened in a separate window.
  • New method defineConfig to be used in playwright.config.
  • New option maxRedirects for method Route.fetch.
  • Playwright now supports Debian 11 arm64.
  • Official docker images now include Node 18 instead of Node 16.

⚠️ Breaking change in component tests

Note: component tests only, does not affect end-to-end tests.

playwright-ct.config configuration file for component testing now requires calling defineConfig.

// Before

import { type PlaywrightTestConfig, devices } from '@​playwright/experimental-ct-react';
const config: PlaywrightTestConfig = {
  // ... config goes here ...
};
export default config;

Replace config variable definition with defineConfig call:

// After

import { defineConfig, devices } from '@​playwright/experimental-ct-react';
export default defineConfig({
  // ... config goes here ...
});

Browser Versions

  • Chromium 111.0.5563.19
  • Mozilla Firefox 109.0
  • WebKit 16.4

This version was also tested against the following stable channels:

  • Google Chrome 110
  • Microsoft Edge 110

Configuration

📅 Schedule: Branch creation - "before 4am on the first day of the month" (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 this update again.


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

This PR has been generated by Renovate Bot.

@openverse-bot openverse-bot requested a review from a team as a code owner January 1, 2024 01:33
@openverse-bot openverse-bot added dependencies Pull requests that update a dependency file 💻 aspect: code Concerns the software code in the repository 🟨 tech: javascript Involves JavaScript 🟩 priority: low Low priority and doesn't need to be rushed 🧰 goal: internal improvement Improvement that benefits maintainers, not users 🧱 stack: frontend Related to the Nuxt frontend labels Jan 1, 2024
Copy link

github-actions bot commented Jan 1, 2024

Size Change: 0 B

Total Size: 1.03 MB

ℹ️ View Unchanged
Filename Size
./frontend/.nuxt/dist/client/251.js 343 B
./frontend/.nuxt/dist/client/251.modern.js 346 B
./frontend/.nuxt/dist/client/252.js 1.85 kB
./frontend/.nuxt/dist/client/app.js 135 kB
./frontend/.nuxt/dist/client/app.modern.js 126 kB
./frontend/.nuxt/dist/client/commons/app.js 105 kB
./frontend/.nuxt/dist/client/commons/app.modern.js 87.5 kB
./frontend/.nuxt/dist/client/commons/components/v-error-section/components/v-external-search-form/components/v-external-source-li/4e2d09e1.js 5.18 kB
./frontend/.nuxt/dist/client/commons/components/v-error-section/components/v-external-search-form/components/v-external-source-li/4e2d09e1.modern.js 5.62 kB
./frontend/.nuxt/dist/client/components/loading-icon.js 731 B
./frontend/.nuxt/dist/client/components/loading-icon.modern.js 734 B
./frontend/.nuxt/dist/client/components/table-sort-icon.js 514 B
./frontend/.nuxt/dist/client/components/table-sort-icon.modern.js 518 B
./frontend/.nuxt/dist/client/components/v-all-results-grid.js 6.64 kB
./frontend/.nuxt/dist/client/components/v-all-results-grid.modern.js 6.48 kB
./frontend/.nuxt/dist/client/components/v-audio-collection.js 4.28 kB
./frontend/.nuxt/dist/client/components/v-audio-collection.modern.js 4.16 kB
./frontend/.nuxt/dist/client/components/v-audio-list.js 1.42 kB
./frontend/.nuxt/dist/client/components/v-audio-list.modern.js 1.4 kB
./frontend/.nuxt/dist/client/components/v-audio-result.js 1.11 kB
./frontend/.nuxt/dist/client/components/v-audio-result.modern.js 1.1 kB
./frontend/.nuxt/dist/client/components/v-audio-track-skeleton.js 957 B
./frontend/.nuxt/dist/client/components/v-audio-track-skeleton.modern.js 961 B
./frontend/.nuxt/dist/client/components/v-audio-track.js 5.14 kB
./frontend/.nuxt/dist/client/components/v-audio-track.modern.js 5.11 kB
./frontend/.nuxt/dist/client/components/v-back-to-search-results-link.js 633 B
./frontend/.nuxt/dist/client/components/v-back-to-search-results-link.modern.js 639 B
./frontend/.nuxt/dist/client/components/v-bone.js 632 B
./frontend/.nuxt/dist/client/components/v-bone.modern.js 635 B
./frontend/.nuxt/dist/client/components/v-box-layout.js 1.16 kB
./frontend/.nuxt/dist/client/components/v-box-layout.modern.js 1.16 kB
./frontend/.nuxt/dist/client/components/v-by-line.js 2.3 kB
./frontend/.nuxt/dist/client/components/v-by-line.modern.js 2.29 kB
./frontend/.nuxt/dist/client/components/v-collection-header.js 1.53 kB
./frontend/.nuxt/dist/client/components/v-collection-header.modern.js 1.54 kB
./frontend/.nuxt/dist/client/components/v-collection-page.js 3.88 kB
./frontend/.nuxt/dist/client/components/v-collection-page.modern.js 3.88 kB
./frontend/.nuxt/dist/client/components/v-content-link.js 1.06 kB
./frontend/.nuxt/dist/client/components/v-content-link.modern.js 1.06 kB
./frontend/.nuxt/dist/client/components/v-content-page.js 531 B
./frontend/.nuxt/dist/client/components/v-content-page.modern.js 535 B
./frontend/.nuxt/dist/client/components/v-content-report-button.js 493 B
./frontend/.nuxt/dist/client/components/v-content-report-button.modern.js 497 B
./frontend/.nuxt/dist/client/components/v-content-report-form.js 3.35 kB
./frontend/.nuxt/dist/client/components/v-content-report-form.modern.js 3.23 kB
./frontend/.nuxt/dist/client/components/v-content-report-popover.js 3.81 kB
./frontend/.nuxt/dist/client/components/v-content-report-popover.modern.js 3.7 kB
./frontend/.nuxt/dist/client/components/v-copy-button.js 3.8 kB
./frontend/.nuxt/dist/client/components/v-copy-button.modern.js 3.81 kB
./frontend/.nuxt/dist/client/components/v-copy-license.js 2.34 kB
./frontend/.nuxt/dist/client/components/v-copy-license.modern.js 2.31 kB
./frontend/.nuxt/dist/client/components/v-copy-license/components/v-license-tab-panel/components/v-media-reuse/pages/image/_id/index.js 3.8 kB
./frontend/.nuxt/dist/client/components/v-copy-license/components/v-license-tab-panel/components/v-media-reuse/pages/image/_id/index.modern.js 3.81 kB
./frontend/.nuxt/dist/client/components/v-dmca-notice.js 795 B
./frontend/.nuxt/dist/client/components/v-dmca-notice.modern.js 800 B
./frontend/.nuxt/dist/client/components/v-error-image.js 2.51 kB
./frontend/.nuxt/dist/client/components/v-error-image.modern.js 2.47 kB
./frontend/.nuxt/dist/client/components/v-error-section.js 5.22 kB
./frontend/.nuxt/dist/client/components/v-error-section.modern.js 4.58 kB
./frontend/.nuxt/dist/client/components/v-external-search-form.js 4.1 kB
./frontend/.nuxt/dist/client/components/v-external-search-form.modern.js 3.44 kB
./frontend/.nuxt/dist/client/components/v-external-source-list.js 2.63 kB
./frontend/.nuxt/dist/client/components/v-external-source-list.modern.js 1.99 kB
./frontend/.nuxt/dist/client/components/v-full-layout.js 3.72 kB
./frontend/.nuxt/dist/client/components/v-full-layout.modern.js 3.7 kB
./frontend/.nuxt/dist/client/components/v-get-media-button.js 622 B
./frontend/.nuxt/dist/client/components/v-get-media-button.modern.js 628 B
./frontend/.nuxt/dist/client/components/v-grid-skeleton.js 1.55 kB
./frontend/.nuxt/dist/client/components/v-grid-skeleton.modern.js 1.55 kB
./frontend/.nuxt/dist/client/components/v-hide-button.js 594 B
./frontend/.nuxt/dist/client/components/v-hide-button.modern.js 591 B
./frontend/.nuxt/dist/client/components/v-home-gallery.js 4.28 kB
./frontend/.nuxt/dist/client/components/v-home-gallery.modern.js 4.26 kB
./frontend/.nuxt/dist/client/components/v-homepage-content.js 1.82 kB
./frontend/.nuxt/dist/client/components/v-homepage-content.modern.js 1.79 kB
./frontend/.nuxt/dist/client/components/v-image-cell.js 2.25 kB
./frontend/.nuxt/dist/client/components/v-image-cell.modern.js 2.24 kB
./frontend/.nuxt/dist/client/components/v-image-grid.js 4.57 kB
./frontend/.nuxt/dist/client/components/v-image-grid.modern.js 4.45 kB
./frontend/.nuxt/dist/client/components/v-license-tab-panel.js 642 B
./frontend/.nuxt/dist/client/components/v-license-tab-panel.modern.js 649 B
./frontend/.nuxt/dist/client/components/v-load-more.js 1.22 kB
./frontend/.nuxt/dist/client/components/v-load-more.modern.js 1.11 kB
./frontend/.nuxt/dist/client/components/v-media-details.js 5.88 kB
./frontend/.nuxt/dist/client/components/v-media-details.modern.js 5.74 kB
./frontend/.nuxt/dist/client/components/v-media-info.js 2.52 kB
./frontend/.nuxt/dist/client/components/v-media-info.modern.js 2.51 kB
./frontend/.nuxt/dist/client/components/v-media-license.js 932 B
./frontend/.nuxt/dist/client/components/v-media-license.modern.js 939 B
./frontend/.nuxt/dist/client/components/v-media-reuse.js 3 kB
./frontend/.nuxt/dist/client/components/v-media-reuse.modern.js 2.97 kB
./frontend/.nuxt/dist/client/components/v-media-tag.js 416 B
./frontend/.nuxt/dist/client/components/v-media-tag.modern.js 420 B
./frontend/.nuxt/dist/client/components/v-media-tags.js 884 B
./frontend/.nuxt/dist/client/components/v-media-tags.modern.js 883 B
./frontend/.nuxt/dist/client/components/v-metadata-value.js 604 B
./frontend/.nuxt/dist/client/components/v-metadata-value.modern.js 609 B
./frontend/.nuxt/dist/client/components/v-metadata.js 1.32 kB
./frontend/.nuxt/dist/client/components/v-metadata.modern.js 1.32 kB
./frontend/.nuxt/dist/client/components/v-modal.js 982 B
./frontend/.nuxt/dist/client/components/v-modal.modern.js 972 B
./frontend/.nuxt/dist/client/components/v-no-results.js 2.67 kB
./frontend/.nuxt/dist/client/components/v-no-results.modern.js 2.03 kB
./frontend/.nuxt/dist/client/components/v-old-icon-button.js 853 B
./frontend/.nuxt/dist/client/components/v-old-icon-button.modern.js 846 B
./frontend/.nuxt/dist/client/components/v-radio.js 1.02 kB
./frontend/.nuxt/dist/client/components/v-radio.modern.js 1.02 kB
./frontend/.nuxt/dist/client/components/v-related-audio.js 4.63 kB
./frontend/.nuxt/dist/client/components/v-related-audio.modern.js 4.47 kB
./frontend/.nuxt/dist/client/components/v-related-images.js 804 B
./frontend/.nuxt/dist/client/components/v-related-images.modern.js 720 B
./frontend/.nuxt/dist/client/components/v-report-desc-form.js 997 B
./frontend/.nuxt/dist/client/components/v-report-desc-form.modern.js 999 B
./frontend/.nuxt/dist/client/components/v-row-layout.js 2.05 kB
./frontend/.nuxt/dist/client/components/v-row-layout.modern.js 2.05 kB
./frontend/.nuxt/dist/client/components/v-safety-wall.js 1.46 kB
./frontend/.nuxt/dist/client/components/v-safety-wall.modern.js 1.46 kB
./frontend/.nuxt/dist/client/components/v-scroll-button.js 891 B
./frontend/.nuxt/dist/client/components/v-scroll-button.modern.js 891 B
./frontend/.nuxt/dist/client/components/v-scroller.js 596 B
./frontend/.nuxt/dist/client/components/v-scroller.modern.js 590 B
./frontend/.nuxt/dist/client/components/v-search-results-title.js 619 B
./frontend/.nuxt/dist/client/components/v-search-results-title.modern.js 622 B
./frontend/.nuxt/dist/client/components/v-single-result-controls.js 1.18 kB
./frontend/.nuxt/dist/client/components/v-single-result-controls.modern.js 1.18 kB
./frontend/.nuxt/dist/client/components/v-sketch-fab-viewer.js 1.02 kB
./frontend/.nuxt/dist/client/components/v-sketch-fab-viewer.modern.js 915 B
./frontend/.nuxt/dist/client/components/v-snackbar.js 811 B
./frontend/.nuxt/dist/client/components/v-snackbar.modern.js 817 B
./frontend/.nuxt/dist/client/components/v-source-creator-button.js 547 B
./frontend/.nuxt/dist/client/components/v-source-creator-button.modern.js 552 B
./frontend/.nuxt/dist/client/components/v-sources-table.js 15.2 kB
./frontend/.nuxt/dist/client/components/v-sources-table.modern.js 15.2 kB
./frontend/.nuxt/dist/client/components/v-tag.js 412 B
./frontend/.nuxt/dist/client/components/v-tag.modern.js 415 B
./frontend/.nuxt/dist/client/components/v-warning-suppressor.js 306 B
./frontend/.nuxt/dist/client/components/v-warning-suppressor.modern.js 311 B
./frontend/.nuxt/dist/client/pages/about.js 1.42 kB
./frontend/.nuxt/dist/client/pages/about.modern.js 1.42 kB
./frontend/.nuxt/dist/client/pages/audio/_id/index.js 20.7 kB
./frontend/.nuxt/dist/client/pages/audio/_id/index.modern.js 19.8 kB
./frontend/.nuxt/dist/client/pages/audio/source/_.js 726 B
./frontend/.nuxt/dist/client/pages/audio/source/_.modern.js 643 B
./frontend/.nuxt/dist/client/pages/audio/tag/_tag.js 561 B
./frontend/.nuxt/dist/client/pages/audio/tag/_tag.modern.js 485 B
./frontend/.nuxt/dist/client/pages/feedback.js 1.36 kB
./frontend/.nuxt/dist/client/pages/feedback.modern.js 1.36 kB
./frontend/.nuxt/dist/client/pages/image/_id/index.js 18.1 kB
./frontend/.nuxt/dist/client/pages/image/_id/index.modern.js 16.7 kB
./frontend/.nuxt/dist/client/pages/image/_id/report.js 5.01 kB
./frontend/.nuxt/dist/client/pages/image/_id/report.modern.js 4.76 kB
./frontend/.nuxt/dist/client/pages/image/source/_.js 726 B
./frontend/.nuxt/dist/client/pages/image/source/_.modern.js 641 B
./frontend/.nuxt/dist/client/pages/image/tag/_tag.js 560 B
./frontend/.nuxt/dist/client/pages/image/tag/_tag.modern.js 483 B
./frontend/.nuxt/dist/client/pages/index.js 6.41 kB
./frontend/.nuxt/dist/client/pages/index.modern.js 6.35 kB
./frontend/.nuxt/dist/client/pages/preferences.js 1.46 kB
./frontend/.nuxt/dist/client/pages/preferences.modern.js 1.45 kB
./frontend/.nuxt/dist/client/pages/privacy.js 1.26 kB
./frontend/.nuxt/dist/client/pages/privacy.modern.js 1.26 kB
./frontend/.nuxt/dist/client/pages/search-help.js 1.08 kB
./frontend/.nuxt/dist/client/pages/search-help.modern.js 1.08 kB
./frontend/.nuxt/dist/client/pages/search.js 5.79 kB
./frontend/.nuxt/dist/client/pages/search.modern.js 8.13 kB
./frontend/.nuxt/dist/client/pages/search/audio.js 4.4 kB
./frontend/.nuxt/dist/client/pages/search/audio.modern.js 4.28 kB
./frontend/.nuxt/dist/client/pages/search/image.js 454 B
./frontend/.nuxt/dist/client/pages/search/image.modern.js 454 B
./frontend/.nuxt/dist/client/pages/search/index.js 316 B
./frontend/.nuxt/dist/client/pages/search/index.modern.js 320 B
./frontend/.nuxt/dist/client/pages/search/model-3d.js 243 B
./frontend/.nuxt/dist/client/pages/search/model-3d.modern.js 247 B
./frontend/.nuxt/dist/client/pages/search/video.js 240 B
./frontend/.nuxt/dist/client/pages/search/video.modern.js 244 B
./frontend/.nuxt/dist/client/pages/sensitive-content.js 1.52 kB
./frontend/.nuxt/dist/client/pages/sensitive-content.modern.js 1.53 kB
./frontend/.nuxt/dist/client/pages/sources.js 1.53 kB
./frontend/.nuxt/dist/client/pages/sources.modern.js 1.54 kB
./frontend/.nuxt/dist/client/runtime.js 2.89 kB
./frontend/.nuxt/dist/client/runtime.modern.js 2.89 kB
./frontend/.nuxt/dist/client/vendors/app.js 66.9 kB
./frontend/.nuxt/dist/client/vendors/app.modern.js 66.6 kB

compressed-size-action

@openverse-bot openverse-bot requested a review from a team as a code owner January 1, 2024 04:59
@openverse-bot
Copy link
Collaborator Author

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.

@dhruvkb
Copy link
Member

dhruvkb commented Jan 1, 2024

The failures in this PR (#3609) are also related to Playwright (but regarding test name conventions).

@obulat obulat force-pushed the gha-renovateplaywright-monorepo branch from 5e2e9a1 to d0d1180 Compare January 1, 2024 06:46
obulat added 4 commits January 1, 2024 11:04
Signed-off-by: Olga Bulat <[email protected]>
Signed-off-by: Olga Bulat <[email protected]>
Signed-off-by: Olga Bulat <[email protected]>
@obulat obulat force-pushed the gha-renovateplaywright-monorepo branch from 0063373 to 3df06f3 Compare January 1, 2024 08:11
@obulat obulat force-pushed the gha-renovateplaywright-monorepo branch 3 times, most recently from 2f38cfd to b11b29d Compare January 2, 2024 01:41
obulat added 2 commits January 2, 2024 07:16
Signed-off-by: Olga Bulat <[email protected]>
Signed-off-by: Olga Bulat <[email protected]>
obulat added 2 commits January 2, 2024 07:16
Signed-off-by: Olga Bulat <[email protected]>
Signed-off-by: Olga Bulat <[email protected]>
@obulat obulat force-pushed the gha-renovateplaywright-monorepo branch from b11b29d to b5dccb8 Compare January 2, 2024 04:17
Copy link

github-actions bot commented Jan 2, 2024

Playwright failure test results: https://github.com/WordPress/openverse/actions/runs/7383201033

It looks like some of the Playwright tests failed. You can download the trace output and image diffs for the failed tests under the "Artifacts" section in the above page.

You can read the docs on how to use this artifact.

If the test is flaky, follow the flaky test triage procedure.

@obulat obulat mentioned this pull request Jan 2, 2024
8 tasks
@obulat obulat marked this pull request as draft January 2, 2024 08:05
@obulat
Copy link
Contributor

obulat commented Jan 2, 2024

Closing this PR because the changes were split into #3614 and #3615.

@obulat obulat closed this Jan 2, 2024
@openverse-bot
Copy link
Collaborator Author

Renovate Ignore Notification

Because you closed this PR without merging, Renovate will ignore this update (1.40.1). You will get a PR once a newer version is released. To ignore this dependency forever, add it to the ignoreDeps array of your Renovate config.

If you accidentally closed this PR, or if you changed your mind: rename this PR to get a fresh replacement PR.

@openverse-bot openverse-bot deleted the gha-renovateplaywright-monorepo branch January 2, 2024 15:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
💻 aspect: code Concerns the software code in the repository dependencies Pull requests that update a dependency file 🧰 goal: internal improvement Improvement that benefits maintainers, not users 🟩 priority: low Low priority and doesn't need to be rushed 🧱 stack: frontend Related to the Nuxt frontend 🟨 tech: javascript Involves JavaScript
Projects
Archived in project
Development

Successfully merging this pull request may close these issues.

3 participants