Commit graph

1902 commits

Author SHA1 Message Date
Pavel Feldman a20e20cdae
fix(trace-viewer): can't read object type (#7802) 2021-07-22 13:35:11 -07:00
Dmitry Gozman 03ebe21323
faet(test runner): help when describe() is misused (#7753) 2021-07-22 12:34:37 -07:00
Max Schmitt 449c8a77dd
chore: disable source-map reference in JS for production builds (#7622) 2021-07-22 20:29:36 +02:00
Max Schmitt 9e3ac1f3a2
fix(test-runner): warn users who invoke the test-runner with Jest (#7743) 2021-07-22 18:27:01 +02:00
Max Schmitt acdc531efc
chore: migrate connect/overCDP to options instead of params (#7606) 2021-07-22 16:55:23 +02:00
Joel Einbinder 483b7d6a0d
feat(test-runner): mark launch as experimental (#7757) 2021-07-21 09:51:27 -05:00
Joel Einbinder 20ba7c3a96
feat(test-runner): use require.resolve for globalSetup and globalTeardown (#7752) 2021-07-20 15:13:40 -05:00
Joel Einbinder 051dc332a6
feat(test-runner): use require to resolve reporters (#7749) 2021-07-20 15:03:01 -05:00
Joel Einbinder bdbf9c9dda
perf(test-runner): lazy require babel (#7750) 2021-07-20 13:24:29 -05:00
Max Schmitt c84c5c8c9b
fix(test-runner): do not list tests to stdout when JSON reporter is used (#7730) 2021-07-20 01:10:43 +02:00
Dmitry Gozman 2ac0c59156
feat(test-runner): rename Test to TestCase (#7725) 2021-07-19 14:54:18 -07:00
Joel Einbinder 56ada374df
feat(dragAndDrop): page.dragAndDrop (#6910) 2021-07-19 12:42:55 -05:00
Joel Einbinder d72efbe181
feat(test-runner): smaller error message paths (#7384) 2021-07-19 12:20:24 -05:00
Joel Einbinder 0cf9cf0829
fix(test-runner): set expand: false for expect. (#7722) 2021-07-19 11:59:53 -05:00
Andrey Lushnikov b2c5bfb72c
chore: nicer message to install dependencies (#7715)
If we know how to install all dependencies, then we should recommend
a Playwright CLI one-liner to install dependencies.

References #7682
2021-07-19 03:54:42 -07:00
Max Schmitt 2ff25522cc
test: rework port forwarding server tests to launch server out of process (#7693) 2021-07-19 07:53:12 +02:00
Dmitry Gozman 66ea613c4d
feat(test-runner): small changes to Reporter api (#7709)
- `TestResult.startTime`
- `Suite.location` is optional now
- `Test.status()` renamed to `Test.outcome()` to differentiate against a
  `Test.expectedStatus` and `TestResult.status` of the different type.
2021-07-18 17:40:59 -07:00
Dmitry Gozman 602d815981
fix(test-runner): list mode should print tests (#7665)
It was not doing anything before.
2021-07-16 22:34:55 -07:00
Dmitry Gozman 167db03f05
feat(test-runner): export reporter api as @playwright/test/reporter (#7692) 2021-07-16 21:15:03 -07:00
Andrey Lushnikov 3c6b058e2b
chore: nicer message to ask for browser installation (#7691)
References #7682
2021-07-16 17:00:27 -07:00
Dmitry Gozman 18be5f5319
feat(test-runner): suite per project (#7688)
This makes our suite structure the following:
```
Root(title='') > Project(title=projectName) > File(title=relativeFilePath) > ...suites > test
```

Removed `fullTitle()` because it is not used directly by anyone.
Default reporters now report each test as
```
[project-name] › relative/file/path.spec.ts:42:42 › suite subsuite test title
```
2021-07-16 15:23:50 -07:00
Pavel Feldman bde764085c
feat(test-runner): introduce attachments (#7685) 2021-07-16 13:48:37 -07:00
Dmitry Gozman 31572fc372
chore(test-runner): misc changes to reporter api (#7664)
- `Location` with `file`, `line` and `column`.
- `fullTitle` does not include project name.
- `titlePath` method.
- All methods of `Reporter` are optional.
- Removed `Test.skipped` property that is superseeded by `Test.status()`.
- Replaced `Suite.findTest()` with `Suite.allTests()`.
- Removed `Test.suite` property.
2021-07-16 12:40:33 -07:00
Joel Einbinder 2f07846c9a
fix(webkit): proper value for event.buttons (#7680) 2021-07-16 13:06:00 -05:00
Andrey Lushnikov 865aff8c9d
feat: support msedge-dev installation (#7679)
Fixes #7677
2021-07-16 09:56:51 -07:00
Andrey Lushnikov 272759f296
feat(chromium): roll Chromium to another new version (#7676) 2021-07-16 09:03:42 -07:00
divdavem 87b0cc530c
feat(cli): add --ignore-https-errors option (#7671) 2021-07-16 07:33:20 -07:00
Dmitry Gozman 8b2dd2e3d1
chore(test-runner): remove the notion of Spec (#7661)
We now have Suites and Tests. When running multiple projects the whole
suite is cloned for each project. Same happens for repeatEach.

This simplifies the reporters API, but there is still room for improvement.

JSON reporter continues to produce old json output.
2021-07-15 22:02:10 -07:00
Max Schmitt 86b21d5299
feat: add High DPI and Low DPI Desktop device descriptors (#7531) 2021-07-15 22:16:27 +02:00
Max Schmitt cf0fb33540
fix: add log entry if selector resolves to multiple elements on click (#7623) 2021-07-15 22:06:08 +02:00
Andrey Lushnikov dd26529b3d
feat(firefox): roll to Firefox 90 (#7652)
Fixes #7583
2021-07-15 10:53:45 -07:00
Joel Einbinder 7e95ee07ae
fix(utils): fix the list dependnecies script (#7649) 2021-07-15 10:27:16 -07:00
Max Schmitt 1b92c674f9
feat: have up2date user-agents for WK and FF (#7644) 2021-07-15 17:41:23 +02:00
Yash Ladha 03b26ec783
chore(android): fix type in DeviceBackend (#7628) 2021-07-14 23:42:09 -07:00
Pavel Feldman 67f5fb6a4f
fix(webkit): add libevdev dep (#7630) 2021-07-14 20:20:03 -07:00
Pavel Feldman 3eb21e2322
feat(webkit): roll to r1515 (#7625) 2021-07-14 18:43:51 -07:00
Dmitry Gozman bb34d7a953
fix(test-runner): sanitize snapshot name before constructing a path (#7620)
This avoids problems with `toMatchSnapshot('../../dir/file.png')`
where we append this path to `snapshotDir` and end up in some random
place.

Also added a note to documentation.
2021-07-14 16:31:19 -07:00
Max Schmitt 6cc2fe178e
feat(test-runner): migrate to launch config/server (#7603) 2021-07-15 01:19:45 +02:00
Max Schmitt a26fe65db3
fix(test-runner): start webServer before globalSetup/teardown (#7604) 2021-07-14 19:01:46 +02:00
Dmitry Gozman d1170b30fc
Revert "api: remove timeout option from isVisible and isHidden methods (#7414)" (#7600)
This reverts commit 9f71c96740.
2021-07-14 10:46:00 +02:00
Dmitry Gozman 0742cb9076
chore: move working with browser channels to Registry Executables (#7581) 2021-07-13 19:03:49 -07:00
Dmitry Gozman 57c5e4d8cf
chore: replace Registry api with Executable list (#7544) 2021-07-13 15:57:40 -07:00
Max Schmitt 767e22c6b2
fix(network): process last inserted routes first in request interception (#7585) 2021-07-13 20:22:01 +02:00
Alex Plischke 27d89732ce
Use correct skip check when generating junit reports (#7571) 2021-07-13 05:05:34 -07:00
Joel Einbinder 9264a8d5b1
fix(chromium): disable use-zoom-for-dsf (#7407) 2021-07-12 22:56:00 -05:00
Joel Einbinder eb31b9e4a9
feat(test-runner): support esm modules in more places (#7542) 2021-07-12 11:59:58 -05:00
Dmitry Gozman 65606c093a
chore: simplify Registry api (#7451) 2021-07-09 16:10:23 -07:00
Max Schmitt 894ff15e65
Revert "chore(eval): merge internal evaluate functions (#7517)" (#7535)
This reverts commit 7a5ef0d157.
2021-07-09 16:19:42 +02:00
Joel Einbinder 7a5ef0d157
chore(eval): merge internal evaluate functions (#7517) 2021-07-08 23:55:01 -07:00
Dmitry Gozman 77deca1d6b
feat(test runner): export testInfo.data (#7525)
This is a key-value storage for any information that goes into the report.
Also export JSONReport types.
2021-07-08 17:16:36 -07:00
Max Schmitt e604f185ca
fix(test-runner): with automatic fixtures workerInfo was undefined after conditional skip (#7521) 2021-07-08 21:55:43 +02:00
Yury Semikhatsky b2742976a8
fix(runner): do not restart worker after skipping tests (#7511) 2021-07-08 09:36:28 -07:00
Max Schmitt ae489b1c43
fix(test-runner): do not override error with unhandled error (#7507) 2021-07-08 18:24:07 +02:00
Max Schmitt 1cc2a2dc59
feat(har): add bodySize, transportSize, headersSize (#7470)
Co-authored-by: tnolet <tim@checklyhq.com>
2021-07-08 18:22:37 +02:00
Dmitry Zakharov 5464ad849e
fix(test-runner): handle negated toMatchSnapshot result (#7345) 2021-07-07 18:51:38 -07:00
Max Schmitt 08da9d207e
chore: move processLauncher into src/utils (#7504) 2021-07-07 21:14:16 +02:00
Dmitry Gozman 2073193c36
fix(test runner): keep track of remaining tests on the runner side (#7486)
This fixes two issues:
- Sudden worker process exit is properly accounted for.
- We can stop() workers willy-nilly, e.g. after reaching maxFailures.

Details:
- DonePayload does not send `reamining` anymore, and worker does not track it.
- Instead, `Dispatcher._runJob` track remaining tests and acts accordingly.
- Upon worker exit, we emulate a fatal error for all remaining tests.

Drive-by:
- Do not report onTestBegin after reaching maxFailures to avoid confusion.
  Before, we did report onTestBegin, but not onTestEnd.
- List reporter aligned between "running" and "finished" state - it was
  one character misplaced.
- Added a SIGINT test.
2021-07-07 12:04:43 -07:00
Max Schmitt 98bcf26656
feat(test-runner): add webServer (#7368) 2021-07-07 20:19:42 +02:00
Max Schmitt ee0497c725
chore: do not log process not found warning on win when PID is not found (#7500) 2021-07-07 19:40:09 +02:00
Dmitry Gozman 47885db116
chore: move install to Registry (#7433)
This is an effort to consolidate all handling of browser binaries in a single place.
2021-07-06 20:59:16 -07:00
Max Schmitt 371aa3dab2
feat: add browser.newContext({ baseUrl }) (#7409) 2021-07-06 21:16:37 +02:00
Max Schmitt b846ddda04
feat(download): introduce Download.cancel (#7462) 2021-07-06 09:38:50 +02:00
Max Schmitt 2231992d74
feat(webkit): roll to 1507 (#7463) 2021-07-05 12:49:31 +02:00
Yury Semikhatsky 02ff213d4d
feat(webkit): intercepted response body (#7229) 2021-07-05 00:27:14 -07:00
Pavel Feldman f52a53e21e
feat(trace-viewer): add nicer params rendering (#7448) 2021-07-02 16:45:09 -07:00
Dmitry Gozman 444d1eb51a
feat(test runner): run modifier functions once if they do not depend on test fixtures (#7436) 2021-07-02 15:49:05 -07:00
Pavel Feldman 99d7d196c5
feat(trace-viewer): render call info w/ params, result (#7438) 2021-07-02 14:33:38 -07:00
Andrey Lushnikov ec8d0629f3
feat: support msedge-beta channel (#7442)
Fixes #7232
2021-07-02 12:55:46 -07:00
Dmitry Gozman 040d81052a
fix(cli): do not suggest internal tools in install command (#7437) 2021-07-02 11:22:26 -07:00
Andrey Lushnikov fe32d38414
feat: move browser fonts to tools section (#7443)
This way we not only fix Docker images, but also fix `npx playwright
install-deps` in virtual machines.
2021-07-02 02:09:31 -07:00
Pavel Feldman 82b21e912e
feat(trace-viewer): add error links to actions (#7434) 2021-07-01 20:46:56 -07:00
Dmitry Gozman 4c7343fe96
chore: move installDeps to Registry (#7431)
This is an effort to consolidate all handling of browser binaries in a single place.
2021-07-01 17:14:04 -07:00
Pavel Feldman e19d509c32
feat(icon): add an icon for trace viewer (#7430) 2021-07-01 17:05:14 -07:00
Dmitry Gozman d46eae44d1
chore: move validateHostRequirements to Registry (#7428)
This is an effort to consolidate all handling of browser binaries in a single place.
2021-07-01 16:17:59 -07:00
Pavel Feldman 8fb0454488
fix(trace-viewer): fall back to stable channels (#7429) 2021-07-01 15:26:55 -07:00
Pavel Feldman b9b0faf120
feat(trace-viewer): render console messages (#7418) 2021-07-01 14:31:20 -07:00
Dmitry Gozman 9f71c96740
api: remove timeout option from isVisible and isHidden methods (#7414)
It is unused and confusing.
2021-07-01 13:30:16 -07:00
Max Schmitt dc1e5638bb
feat(webkit): roll to 1505 (#7421) 2021-07-01 19:26:02 +02:00
Max Schmitt b5d134d45b
feat(firefox): roll to 1271 (#7419) 2021-07-01 18:52:14 +02:00
Max Schmitt 027fc4c0b4
chore: hide request interception for 1.13 (#7425) 2021-07-01 18:33:47 +02:00
Pavel Feldman 9c3ae38914
fix(chromium): disable the new broken upstream feature (#7416) 2021-07-01 07:49:49 -07:00
Pavel Feldman f43b4efbc9
fix(trace-viewer): include waitFor* in trace viewer (#7413) 2021-06-30 17:56:48 -07:00
Dmitry Gozman 63e6e530ca
fix(launch): replace 'npm install playwright' with 'npx playwright install' (#7410)
... in the error message
2021-06-30 16:31:55 -07:00
Anirudh Modi 8f2bfed659
feat: added more logging info for $ (#7344) 2021-06-30 11:17:09 -07:00
Pavel Feldman e9246089d5
test(trace-viewer): start adding tests (#7393) 2021-06-29 22:35:50 -07:00
Joel Einbinder a1f9fc3f32
fix(test runner): properly match test suffix (#7392) 2021-06-29 17:49:56 -07:00
Dmitry Gozman fc0b8ad3f0
fix(tracing): record scroll position for all scrolled elements (#7388) 2021-06-29 16:20:15 -07:00
Joel Einbinder 7629587914
fix(test-runner): work with .mjs files (#7373) 2021-06-29 15:28:41 -07:00
Pavel Feldman b1d66d54f0
fix(tracing): explicitly list actions to snapshot (#7376) 2021-06-29 15:28:15 -07:00
Dmitry Gozman 3ce1f5c33e
chore: avoid execSync when determining hostPlatform (#7386) 2021-06-29 13:39:30 -07:00
Dmitry Gozman 6b3614fd4c
feat(test runner): support test.setTimeout for the whole block (#7387)
This enables `test.setTimeout()` outside of the test body, that
affects all tests in the block (either file or describe).
2021-06-29 13:33:13 -07:00
Joel Einbinder 368880962f
fix(test-runner): better test match glob (#7382) 2021-06-29 11:49:50 -07:00
Dmitry Gozman 6aefa02e91
feat(test runner): improve reporters api (#7370)
- onEnd may return a Promise
- onEnd now takes a result for the full run
- onTimeout is replaced with onEnd(result)
2021-06-29 10:55:46 -07:00
Pavel Feldman 7062278265
fix(trace): copy cached resources on write (optimization) (#7372) 2021-06-28 22:01:08 -07:00
Dmitry Gozman 1660334357
feat(install): docs and help (#7365)
Drive-by: remove test-intro and references to it.
2021-06-28 18:50:24 -07:00
Dmitry Gozman 530523cb67
feat(setInputFiles): support label retargeting (#7364)
This way `page.setInputFiles('label')` works, similarly to other input actions.
2021-06-28 14:18:01 -07:00
Pavel Feldman a8d48a1a48
chore: remove hard-coded wrapApi names (#7347) 2021-06-28 13:27:38 -07:00
Max Schmitt 0776cf76a2
feat(test-runner): do only allow unique spec titles per suite (#7300) 2021-06-28 22:13:35 +02:00
Max Schmitt 9f9201420a
fix(websockets): filter for text and binary frames (#7360) 2021-06-28 21:23:29 +02:00
Ronie Martinez 409aeaa443
feat(codegen): Add type annotations to Python output and make PEP8-compliant (#7337) 2021-06-26 13:11:32 -07:00