Commit graph

991 commits

Author SHA1 Message Date
Yury Semikhatsky 5ceac3fe5d
cherry-pick(#18800): chore: hide TestProject.setup and TestInfo.storage (#18803) 2022-11-14 19:02:02 -08:00
Yury Semikhatsky db93e9766e
cherry-pick(#18791): Revert "chore(driver): roll driver to recent Nod… (#18794)
…e.js LTS version (#18636)"

The new node resolves loalhost to ::1 by default which breaks API tests
in the ports (Java in particular). Reverting to the previous LTS to
allow some time to implement happy eyeballs algorithm on our end by next
release.

This reverts commit 63a0b75186. Reference
https://github.com/microsoft/playwright/issues/18790
2022-11-14 13:58:13 -08:00
Dmitry Gozman 194abc35cd
Revert #18561 "feat(test runner): test.reset() to reset options to default/config value" (#18704)
This reverts commit 6fef227f43.

Not shipping in 1.28.
2022-11-10 14:45:05 -08:00
Andrey Lushnikov f52fa4ceba
chore(snapshotPathTemplate): address review comments (#18702) 2022-11-10 11:37:41 -08:00
Andrey Lushnikov 6d491f928d
feat(playwright-test): introduce snapshotPathTemplate configuration (#18568)
This configuration option allows to set a string with template
values for precise control over snapshot path location.

An example of `snapshotPathTemplate` usage:

```ts
// playwright.config.ts
// Notice the `testDir` configuration!
export default {
  testDir: './tests',
  snapshotPathTemplate: './__screenshots__/{platform}/{projectName}/{testFilePath}/{arg}{ext}',
}
```

Currently supported "magic tokens" inside the `snapshotPathTemplate`
are:

- `{testDir}` - project's `testDir`
- `{snapshotDir}` - project's `snapshotDir`
- `{platform}` - `process.platform`
- `{projectName}` - Project's sanitized name
- `{testFileDir}` - Directories in relative path from `testDir` to test
  file path (e.g. `page/` in the example below)
- `{testFileName}` - Test file name (with extension) (e.g.
  `page-click.spec.ts` in the example below)
- `{testFilePath}` - Relative path from `testDir` to test file path
  (e.g. `page/page-click.spec.ts` in the example below)
- `{ext}` - snapshot extension (with dots)
- `{arg}` - joined snapshot name parts, without extension (e.g.
`foo/bar/baz` in the example below)
- `{snapshotSuffix}` - `testInfo.snapshotSuffix` value.

Consider the following file structure:

```
playwright.config.ts
tests/
└── page/
    └── page-click.spec.ts
```

The following `page-click.spec.ts`:

```ts
// page-click.spec.ts
import { test, expect } from '@playwright/test';

test('should work', async ({ page }) => {
  await expect(page).toHaveScreenshot(['foo', 'bar', 'baz.png']);
});
```

Fixes #7792
2022-11-09 15:29:07 -08:00
github-actions[bot] 63a0b75186
chore(driver): roll driver to recent Node.js LTS version (#18636) 2022-11-08 03:31:27 -08:00
Yury Semikhatsky d5494edf71
feat(runner): TestOptions.storageStateName (#18587) 2022-11-07 16:27:38 -08:00
Yury Semikhatsky 25dc0bfacb
feat(runner): change storage fixture to TestInfo.storage() (#18584) 2022-11-04 14:28:25 -07:00
Dmitry Gozman 6fef227f43
feat(test runner): test.reset() to reset options to default/config value (#18561) 2022-11-04 09:03:29 -07:00
Yury Semikhatsky 45aa82242d
feat(runner): storage fixture (#18522) 2022-11-02 20:22:35 -07:00
Dmitry Gozman 8292398692
docs: support custom hrefs for api links (#18514) 2022-11-02 13:35:51 -07:00
Pavel Feldman 2183d9e9a2
chore: use codemirror for editor (#18482) 2022-11-01 15:04:30 -07:00
Pavel Feldman 4d53fd9c63
chore: download android driver from the cdn (#18466) 2022-10-31 16:08:26 -07:00
Yury Semikhatsky 7337dd4e28
chore: revert project.{stage,run} (#18462) 2022-10-31 14:04:24 -07:00
Max Schmitt 490513a017
devops: update repo for internal tests 2022-10-30 21:33:30 -07:00
Dmitry Gozman 2d3b2a0768
feat(test runner): test.describe.configure({ retries, timeout }) (#18388)
References #10825.
2022-10-27 15:53:27 -07:00
github-actions[bot] 02499cf589
chore(driver): roll driver to recent Node.js LTS version (#18333)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2022-10-26 08:12:39 -07:00
Max Schmitt 5d99719f5d
chore: use Node.js 18 for Docker images (#18334)
Node.js 18 is now LTS and we follow LTS schedule.
2022-10-26 08:11:20 -07:00
Max Schmitt 805312b722
feat(android): add Android.{launchServer,connect} (#18263)
Fixes https://github.com/microsoft/playwright/issues/17538
2022-10-24 17:23:11 -07:00
Yury Semikhatsky 11eb719d13
feat(runner): project run: "always" (#18160)
Projects marked with `run: 'always'` are non shard-able and run after
failures.
2022-10-18 17:18:45 -07:00
Pavel Feldman 739b64a09a
chore: render typed locators in the recorder (#18162) 2022-10-18 16:39:58 -07:00
github-actions[bot] 3f2d58eeec
chore(driver): roll driver to recent Node.js LTS version (#18055)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2022-10-13 14:33:07 +03:00
Yury Semikhatsky 08a3a269cd
feat(runner): project.canShard (#18037) 2022-10-12 14:34:22 -07:00
Yury Semikhatsky 3b8f63d703
feat(runner): project.stopOnFailure (#18009) 2022-10-11 17:04:01 -07:00
Yury Semikhatsky 3592269caf
feat(runner): project.stage (#17971) 2022-10-10 17:56:18 -07:00
Yury Semikhatsky 3da72235e2
chore: add ts_to_java test conversion script (#17914) 2022-10-07 13:16:46 -07:00
Pavel Feldman c81af6b2bd
chore: generalize branch name attr (#17898) 2022-10-06 21:58:30 -07:00
Dmitry Gozman 6750a02506
fix(api): hide TestConfig.groups (#17853)
Also fix types for `FullConfig.configFile`.
2022-10-05 14:24:14 -07:00
Max Schmitt e8413264fa
chore: fix .NET generator (#17849) 2022-10-05 21:01:57 +02:00
Stephen Li 0b1b718afc
feat(core): type addInitScript function arg (#17651)
Allows autocomplete on the arg passed to the init script

```ts
await page.addInitScript((arg) => {
    window.localStorage.setItem('init_user_state', JSON.stringify(arg.initUserState)) // arg was previously 'any'
}, {
    initUserState: { foo: 'bar' },
})
```
2022-10-05 09:08:30 -07:00
Pavel Feldman e09945c637
chore: handle unexpected ws response (#17714) 2022-09-29 14:04:19 -07:00
Pavel Feldman a97deb1600
chore: hide reporter project id (#17710) 2022-09-29 12:51:06 -07:00
Yury Semikhatsky 9f17ee6871
feat: group filter (#17646) 2022-09-28 18:45:01 -07:00
Pavel Feldman cadd4d1dd0
chore: migrate http server to ts (#17677) 2022-09-28 17:01:13 -07:00
Pavel Feldman d8f67eb75d
feat(api): introduce getByTestId (#17645) 2022-09-27 21:06:07 -07:00
Pavel Feldman 8ad201b802
chore: add snippet to the json report (#17567) 2022-09-27 13:23:08 -07:00
Pavel Feldman bfd38bf7df
chore: introduce md templates (#17632) 2022-09-27 10:29:34 -07:00
Pavel Feldman 0a3cfc1c21
chore: annotate md utils to compile with ts-check (#17600) 2022-09-27 09:27:23 -07:00
github-actions[bot] 15c6488c8f
chore(driver): roll driver to recent Node.js LTS version (#17620)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2022-09-27 13:53:07 +02:00
Max Schmitt cf75f8ca20
chore: custom error if HTML report gets uploaded in Trace Viewer (#17558)
Fixes https://github.com/microsoft/playwright/issues/17309
2022-09-26 20:57:05 +02:00
Max Schmitt a5eee6d960
fix(driver): with CWD which contained spaces (#17579)
Fixes https://github.com/microsoft/playwright-python/issues/1561
Fixes https://github.com/microsoft/playwright-python/issues/1565
2022-09-26 19:19:04 +02:00
Andrey Lushnikov 4cd2176155
feat(containers): introduce separate container commands (#17541)
This patch introduces hidden commands to control container
lifecycle:
- `npx playwright docker install-server-deps` to install fluxbox,
  vnc, novnc & to configure them.
- `npx playwright docker run-server` to run a server inside the
  container.

Drive-by: remove old version of container image when building a new
version with the same name. This way we won't pile up untagged
container images.
2022-09-22 13:38:54 -07:00
Andrey Lushnikov d431958603
chore: move container integration back to playwright-core (#17487) 2022-09-21 12:45:43 -07:00
Pavel Feldman 53ab3d19e8
fix(protocol): update build tools (#17515) 2022-09-21 12:43:18 -07:00
Pavel Feldman df143031e7
chore: move protocol and trace types into the top-level packages (#17486) 2022-09-20 18:41:51 -07:00
Pavel Feldman 854c783019
chore: project.id, configFile in reporter apis (#17346) 2022-09-14 14:56:28 -07:00
Andrey Lushnikov 462fa7d79d
devops: upload reports to a new container (#17298)
This patch:
- adds `gitBranchName` to the infra metadata to the report
- starts uploading persistent reports to a different container, prefixed
with utc year-month-date.
2022-09-13 10:55:39 -07:00
Max Schmitt c7367b7065
chore(dotnet): no nested namespace in transport channels (#17273) 2022-09-12 23:13:59 +02:00
Max Schmitt 0b4de0df7f
chore(dotnet): use csharp 10 namespace declaration (#17248) 2022-09-12 11:01:49 -07:00
Andrey Lushnikov af042beb13
feat: introduce docker integration (#16382)
This patch introduces the following commands:
- `npx playwright docker build` that builds a VRT docker image
  locally that is based off the `mcr.microsoft.com/playwright:jammy`
- `npx playwright docker start` that launches a docker container with
  browsers.
- `npx playwright docker stop` that stops given docker container.
- `npx playwright docker test` that runs all the tests inside a
  launched docker container.
2022-09-09 15:25:42 -07:00