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

[Snyk] Upgrade @playwright/test from 1.44.1 to 1.46.0 #618

Closed

Conversation

it-percona
Copy link

snyk-top-banner

Snyk has created this PR to upgrade @playwright/test from 1.44.1 to 1.46.0.

ℹ️ Keep your dependencies up-to-date. This makes it easier to fix existing vulnerabilities and to more quickly identify and fix newly disclosed vulnerabilities when they affect your project.


  • The recommended version is 144 versions ahead of your current version.

  • The recommended version was released on 22 days ago.

Release notes
Package name: @playwright/test
  • 1.46.0 - 2024-08-05

    TLS Client Certificates

    Playwright now allows to supply client-side certificates, so that server can verify them, as specified by TLS Client Authentication.

    When client certificates are specified, all browser traffic is routed through a proxy that establishes the secure TLS connection, provides client certificates to the server and validates server certificates.

    The following snippet sets up a client certificate for https://example.com:

    import { defineConfig } from '@ playwright/test';

    export default defineConfig({
    // ...
    use: {
    clientCertificates: [{
    origin: 'https://example.com',
    certPath: './cert.pem',
    keyPath: './key.pem',
    passphrase: 'mysecretpassword',
    }],
    },
    // ...
    });

    You can also provide client certificates to a particular test project or as a parameter of browser.newContext() and apiRequest.newContext().

    --only-changed cli option

    New CLI option --only-changed allows to only run test files that have been changed since the last git commit or from a specific git "ref".

    # Only run test files with uncommitted changes
    npx playwright test --only-changed

    # Only run test files changed relative to the "main" branch
    npx playwright test --only-changed=main

    Component Testing: New router fixture

    This release introduces an experimental router fixture to intercept and handle network requests in component testing.
    There are two ways to use the router fixture:

    • Call router.route(url, handler) that behaves similarly to page.route().
    • Call router.use(handlers) and pass MSW library request handlers to it.

    Here is an example of reusing your existing MSW handlers in the test.

    import { handlers } from '@ src/mocks/handlers';

    test.beforeEach(async ({ router }) => {
    // install common handlers before each test
    await router.use(...handlers);
    });

    test('example test', async ({ mount }) => {
    // test as usual, your handlers are active
    // ...
    });

    This fixture is only available in component tests.

    UI Mode / Trace Viewer Updates

    • Test annotations are now shown in UI mode.
    • Content of text attachments is now rendered inline in the attachments pane.
    • New setting to show/hide routing actions like route.continue().
    • Request method and status are shown in the network details tab.
    • New button to copy source file location to clipboard.
    • Metadata pane now displays the baseURL.

    Miscellaneous

    Possibly breaking change

    Fixture values that are array of objects, when specified in the test.use() block, may require being wrapped into a fixture tuple. This is best seen on the example:

    import { test as base } from '@ playwright/test';

    // Define an option fixture that has an "array of objects" value
    type User = { name: string, password: string };
    const test = base.extend<{ users: User[] }>({
    users: [ [], { option: true } ],
    });

    // Specify option value in the test.use block.
    test.use({
    // WRONG: this syntax may not work for you
    users: [
    { name: 'John Doe', password: 'secret' },
    { name: 'John Smith', password: 's3cr3t' },
    ],
    // CORRECT: this syntax will work. Note extra [] around the value, and the "scope" property.
    users: [[
    { name: 'John Doe', password: 'secret' },
    { name: 'John Smith', password: 's3cr3t' },
    ], { scope: 'test' }],
    });

    test('example test', async () => {
    // ...
    });

    Browser Versions

    • Chromium 128.0.6613.18
    • Mozilla Firefox 128.0
    • WebKit 18.0

    This version was also tested against the following stable channels:

    • Google Chrome 127
    • Microsoft Edge 127
  • 1.46.0-beta-1723832534000 - 2024-08-16
  • 1.46.0-beta-1723801589000 - 2024-08-16
  • 1.46.0-beta-1723720592000 - 2024-08-15
  • 1.46.0-beta-1723720241000 - 2024-08-15
  • 1.46.0-beta-1723710364000 - 2024-08-15
  • 1.46.0-beta-1723660382000 - 2024-08-14
  • 1.46.0-beta-1723133504000 - 2024-08-08
  • 1.46.0-beta-1722921654000 - 2024-08-06
  • 1.46.0-beta-1722864935000 - 2024-08-05
  • 1.46.0-beta-1722862542000 - 2024-08-05
  • 1.46.0-beta-1722861852000 - 2024-08-05
  • 1.46.0-beta-1722861393000 - 2024-08-05
  • 1.46.0-beta-1722619968000 - 2024-08-02
  • 1.46.0-beta-1722548857000 - 2024-08-01
  • 1.46.0-beta-1722543854000 - 2024-08-01
  • 1.46.0-beta-1722539025000 - 2024-08-01
  • 1.46.0-beta-1722538384000 - 2024-08-01
  • 1.46.0-beta-1722536587000 - 2024-08-01
  • 1.46.0-beta-1722529720000 - 2024-08-01
  • 1.46.0-beta-1722515615000 - 2024-08-01
  • 1.46.0-beta-1722491095000 - 2024-08-01
  • 1.46.0-beta-1722473979000 - 2024-08-01
  • 1.46.0-beta-1722473905000 - 2024-08-01
  • 1.46.0-beta-1722473882000 - 2024-08-01
  • 1.46.0-beta-1722449265000 - 2024-07-31
  • 1.46.0-beta-1722359450000 - 2024-07-30
  • 1.46.0-beta-1722356599000 - 2024-07-30
  • 1.46.0-beta-1722335510000 - 2024-07-30
  • 1.46.0-beta-1722264334000 - 2024-07-29
  • 1.46.0-beta-1722257607000 - 2024-07-29
  • 1.46.0-beta-1722008066000 - 2024-07-26
  • 1.46.0-alpha-2024-07-26 - 2024-07-26
  • 1.46.0-alpha-2024-07-25 - 2024-07-25
  • 1.46.0-alpha-2024-07-24 - 2024-07-24
  • 1.46.0-alpha-2024-07-23 - 2024-07-23
  • 1.46.0-alpha-2024-07-22 - 2024-07-22
  • 1.46.0-alpha-2024-07-21 - 2024-07-21
  • 1.46.0-alpha-2024-07-20 - 2024-07-20
  • 1.46.0-alpha-2024-07-19 - 2024-07-19
  • 1.46.0-alpha-2024-07-18 - 2024-07-18
  • 1.46.0-alpha-2024-07-17 - 2024-07-17
  • 1.46.0-alpha-2024-07-16 - 2024-07-16
  • 1.46.0-alpha-2024-07-15 - 2024-07-15
  • 1.46.0-alpha-2024-07-14 - 2024-07-14
  • 1.46.0-alpha-2024-07-13 - 2024-07-13
  • 1.46.0-alpha-2024-07-12 - 2024-07-12
  • 1.46.0-alpha-2024-07-11 - 2024-07-11
  • 1.46.0-alpha-2024-07-10 - 2024-07-10
  • 1.46.0-alpha-2024-07-09 - 2024-07-09
  • 1.46.0-alpha-2024-07-08 - 2024-07-08
  • 1.46.0-alpha-2024-07-07 - 2024-07-07
  • 1.46.0-alpha-2024-07-06 - 2024-07-06
  • 1.46.0-alpha-2024-07-05 - 2024-07-05
  • 1.46.0-alpha-2024-07-04 - 2024-07-04
  • 1.46.0-alpha-2024-07-03 - 2024-07-03
  • 1.46.0-alpha-2024-07-02 - 2024-07-02
  • 1.46.0-alpha-2024-07-01 - 2024-07-01
  • 1.46.0-alpha-2024-06-30 - 2024-06-30
  • 1.46.0-alpha-2024-06-29 - 2024-06-29
  • 1.46.0-alpha-2024-06-28 - 2024-06-28
  • 1.46.0-alpha-2024-06-27 - 2024-06-27
  • 1.46.0-alpha-2024-06-26 - 2024-06-26
  • 1.46.0-alpha-2024-06-25 - 2024-06-25
  • 1.46.0-alpha-2024-06-24 - 2024-06-24
  • 1.46.0-alpha-2024-06-23 - 2024-06-23
  • 1.46.0-alpha-2024-06-22 - 2024-06-22
  • 1.46.0-alpha-2024-06-21 - 2024-06-21
  • 1.46.0-alpha-2024-06-20 - 2024-06-20
  • 1.46.0-alpha-2024-06-19 - 2024-06-19
  • 1.46.0-alpha-2024-06-18 - 2024-06-18
  • 1.46.0-alpha-2024-06-17 - 2024-06-17
  • 1.46.0-alpha-2024-06-16 - 2024-06-16
  • 1.46.0-alpha-1721990585000 - 2024-07-26
  • 1.46.0-alpha-1721813979000 - 2024-07-24
  • 1.45.3 - 2024-07-22

    Highlights

    #31764 - [Bug]: some actions do not appear in the trace file
    microsoft/playwright-java#1617 - [Bug]: Traceviewer not reporting all actions

    Browser Versions

    • Chromium 127.0.6533.5
    • Mozilla Firefox 127.0
    • WebKit 17.4

    This version was also tested against the following stable channels:

    • Google Chrome 126
    • Microsoft Edge 126
  • 1.45.3-beta-1721669341000 - 2024-07-22
  • 1.45.2 - 2024-07-16

    Highlights

    #31613 - [REGRESSION]: Trace is not showing any screenshots nor test name
    #31601 - [REGRESSION]: missing trace for 2nd browser
    #31541 - [REGRESSION]: Failing tests have a trace with no images and with steps missing

    Browser Versions

    • Chromium 127.0.6533.5
    • Mozilla Firefox 127.0
    • WebKit 17.4

    This version was also tested against the following stable channels:

    • Google Chrome 126
    • Microsoft Edge 126
  • 1.45.2-beta-1721667688000 - 2024-07-22
  • 1.45.2-beta-1721667620000 - 2024-07-22
  • 1.45.2-beta-1721126701000 - 2024-07-16
  • 1.45.1 - 2024-07-02

    Highlights

    #31473 - [REGRESSION]: Playwright raises an error ENOENT: no such file or directory, open 'test-results/.playwright-artifacts-0/hash.zip' with Electron
    #31442 - [REGRESSION]: Locators of elements changing from/to hidden have operations hanging when using --disable-web-security
    #31431 - [REGRESSION]: NewTab doesn't work properly with Chrome with --disable-web-security
    #31425 - [REGRESSION]: beforeEach hooks are not skipped when describe condition depends on fixtures
    #31491 - [REGRESSION]: @ playwright/experimental-ct-react doesn't work with VSCode extension and PNPM

    Browser Versions

    • Chromium 127.0.6533.5
    • Mozilla Firefox 127.0
    • WebKit 17.4

    This version was also tested against the following stable channels:

    • Google Chrome 126
    • Microsoft Edge 126
  • 1.45.1-beta-1721056413000 - 2024-07-15
  • 1.45.1-beta-1720807989000 - 2024-07-12
  • 1.45.1-beta-1719996498000 - 2024-07-03
  • 1.45.1-beta-1719941226000 - 2024-07-02
  • 1.45.0 - 2024-06-24

    Clock

    Utilizing the new Clock API allows to manipulate and control time within tests to verify time-related behavior. This API covers many common scenarios, including:

    • testing with predefined time;
    • keeping consistent time and timers;
    • monitoring inactivity;
    • ticking through time manually.
    // Initialize clock and let the page load naturally.
    await page.clock.install({ time: new Date('2024-02-02T08:00:00') });
    await page.goto('http://localhost:3333');

    // Pretend that the user closed the laptop lid and opened it again at 10am,
    // Pause the time once reached that point.
    await page.clock.pauseAt(new Date('2024-02-02T10:00:00'));

    // Assert the page state.
    await expect(page.getByTestId('current-time')).toHaveText('2/2/2024, 10:00:00 AM');

    // Close the laptop lid again and open it at 10:30am.
    await page.clock.fastForward('30:00');
    await expect(page.getByTestId('current-time')).toHaveText('2/2/2024, 10:30:00 AM');

    See the clock guide for more details.

    Test runner

    • New CLI option --fail-on-flaky-tests that sets exit code to 1 upon any flaky tests. Note that by default, the test runner exits with code 0 when all failed tests recovered upon a retry. With this option, the test run will fail in such case.

    • New enviroment variable PLAYWRIGHT_FORCE_TTY controls whether built-in list, line and dot reporters assume a live terminal. For example, this could be useful to disable tty behavior when your CI environment does not handle ANSI control sequences well. Alternatively, you can enable tty behavior even when to live terminal is present, if you plan to post-process the output and handle control sequences.

      # Avoid TTY features that output ANSI control sequences
      PLAYWRIGHT_FORCE_TTY=0 npx playwright test

      # Enable TTY features, assuming a terminal width 80
      PLAYWRIGHT_FORCE_TTY=80 npx playwright test

    • New options testConfig.respectGitIgnore and testProject.respectGitIgnore control whether files matching .gitignore patterns are excluded when searching for tests.

    • New property timeout is now available for custom expect matchers. This property takes into account playwright.config.ts and expect.configure().

      import { expect as baseExpect } from '@ playwright/test';

      export const expect = baseExpect.extend({
      async toHaveAmount(locator: Locator, expected: number, options?: { timeout?: number }) {
      // When no timeout option is specified, use the config timeout.
      const timeout = options?.timeout ?? this.timeout;
      // ... implement the assertion ...
      },
      });

    Miscellaneous

    • Method locator.setInputFiles() now supports uploading a directory for <input type=file webkitdirectory> elements.

      await page.getByLabel('Upload directory').setInputFiles(path.join(__dirname, 'mydir'));
    • Multiple methods like locator.click() or locator.press() now support a ControlOrMeta modifier key. This key maps to Meta on macOS and maps to Control on Windows and Linux.

      // Press the common keyboard shortcut Control+S or Meta+S to trigger a "Save" operation.
      await page.keyboard.press('ControlOrMeta+S');
    • New property httpCredentials.send in apiRequest.newContext() that allows to either always send the Authorization header or only send it in response to 401 Unauthorized.

    • New option reason in apiRequestContext.dispose() that will be included in the error message of ongoing operations interrupted by the context disposal.

    • New option host in browserType.launchServer() allows to accept websocket connections on a specific address instead of unspecified 0.0.0.0.

    • Playwright now supports Chromium, Firefox and WebKit on Ubuntu 24.04.

    • v1.45 is the last release to receive WebKit update for macOS 12 Monterey. Please update macOS to keep using the latest WebKit.

    Browser Versions

    • Chromium 127.0.6533.5
    • Mozilla Firefox 127.0
    • WebKit 17.4

    This version was also tested against the following stable channels:

    • Google Chrome 126
    • Microsoft Edge 126
  • 1.45.0-beta-1719854491000 - 2024-07-01
  • 1.45.0-beta-1719819889000 - 2024-07-01
  • 1.45.0-beta-1719505820000 - 2024-06-27
  • 1.45.0-beta-1719443776000 - 2024-06-26
  • 1.45.0-beta-1719257069000 - 2024-06-24
  • 1.45.0-beta-1719257053000 - 2024-06-24
  • 1.45.0-beta-1719253817000 - 2024-06-24
  • 1.45.0-beta-1718972438000 - 2024-06-21
  • 1.45.0-beta-1718813530000 - 2024-06-19
  • 1.45.0-beta-1718782041000 - 2024-06-19
  • 1.45.0-beta-1718733727000 - 2024-06-18
  • 1.45.0-beta-1718419432000 - 2024-06-15
  • 1.45.0-beta-1718411373000 - 2024-06-15
  • 1.45.0-alpha-2024-06-15 - 2024-06-15
  • 1.45.0-alpha-2024-06-14 - 2024-06-14
  • 1.45.0-alpha-2024-06-13 - 2024-06-13
  • 1.45.0-alpha-2024-06-12 - 2024-06-12
  • 1.45.0-alpha-2024-06-11 - 2024-06-11
  • 1.45.0-alpha-2024-06-10 - 2024-06-10
  • 1.45.0-alpha-2024-06-09 - 2024-06-09
  • 1.45.0-alpha-2024-06-08 - 2024-06-08
  • 1.45.0-alpha-2024-06-07 - 2024-06-07
  • 1.45.0-alpha-2024-06-06 - 2024-06-06
  • 1.45.0-alpha-2024-06-05 - 2024-06-05
  • 1.45.0-alpha-2024-06-04 - 2024-06-04
  • 1.45.0-alpha-2024-06-03 - 2024-06-03
  • 1.45.0-alpha-2024-06-02 - 2024-06-02
  • 1.45.0-alpha-2024-06-01 - 2024-06-01
  • 1.45.0-alpha-2024-05-31 - 2024-05-31
  • 1.45.0-alpha-2024-05-30 - 2024-05-30
  • 1.45.0-alpha-2024-05-29 - 2024-05-29
  • 1.45.0-alpha-2024-05-28 - 2024-05-28
  • 1.45.0-alpha-2024-05-27 - 2024-05-27
  • 1.45.0-alpha-2024-05-26 - 2024-05-26
  • 1.45.0-alpha-2024-05-25 - 2024-05-25
  • 1.45.0-alpha-2024-05-24 - 2024-05-24
  • 1.45.0-alpha-2024-05-23 - 2024-05-23
  • 1.45.0-alpha-2024-05-22 - 2024-05-22
  • 1.45.0-alpha-2024-05-21 - 2024-05-21
  • 1.45.0-alpha-2024-05-20 - 2024-05-20
  • 1.45.0-alpha-2024-05-19 - 2024-05-19
  • 1.45.0-alpha-2024-05-18 - 2024-05-18
  • 1.45.0-alpha-2024-05-17 - 2024-05-17
  • 1.45.0-alpha-2024-05-16 - 2024-05-16
  • 1.45.0-alpha-2024-05-15 - 2024-05-15
  • 1.45.0-alpha-2024-05-14 - 2024-05-14
  • 1.45.0-alpha-2024-05-13 - 2024-05-13
  • 1.45.0-alpha-2024-05-12 - 2024-05-12
  • 1.45.0-alpha-2024-05-11 - 2024-05-11
  • 1.45.0-alpha-2024-05-10 - 2024-05-10
  • 1.45.0-alpha-2024-05-09 - 2024-05-09
  • 1.45.0-alpha-2024-05-08 - 2024-05-08
  • 1.45.0-alpha-2024-05-07 - 2024-05-07
  • 1.45.0-alpha-2024-05-06 - 2024-05-06
  • 1.45.0-alpha-2024-04-30 - 2024-04-30
  • 1.45.0-alpha-1716491102000 - 2024-05-23
  • 1.45.0-alpha-1714760563000 - 2024-05-06
  • 1.44.1 - 2024-05-23

    Highlights

    #30779 - [REGRESSION]: When using video: 'on' with VSCode extension the browser got closed
    #30755 - [REGRESSION]: Electron launch with spaces inside executablePath didn't work
    #30770 - [REGRESSION]: Mask elements outside of viewport when creating fullscreen screenshots didn't work
    #30858 - [REGRESSION]: ipv6 got shown instead of localhost in show-trace/show-report

    Browser Versions

    • Chromium 125.0.6422.14
    • Mozilla Firefox 125.0.1
    • WebKit 17.4

    This version was also tested against the following stable channels:

    • Google Chrome 124
    • Microsoft Edge 124
from @playwright/test GitHub release notes

Important

  • Check the changes in this PR to ensure they won't cause issues with your project.
  • This PR was automatically created by Snyk using the credentials of a real user.

Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open upgrade PRs.

For more information:

Snyk has created this PR to upgrade @playwright/test from 1.44.1 to 1.46.0.

See this package in npm:
@playwright/test

See this project in Snyk:
https://app.snyk.io/org/everest-VAvwgsrhMpfKYLprmxXr46/project/7be39b62-e389-4b6e-9c2c-c3a00dfff719?utm_source=github&utm_medium=referral&page=upgrade-pr
@it-percona it-percona requested a review from a team as a code owner August 28, 2024 08:26
@recharte
Copy link
Collaborator

recharte commented Oct 4, 2024

Superseeded by #705

@recharte recharte closed this Oct 4, 2024
auto-merge was automatically disabled October 4, 2024 13:41

Pull request was closed

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

Successfully merging this pull request may close these issues.

4 participants