Commit Graph

343 Commits

Author SHA1 Message Date
Yury Semikhatsky
75981bc0aa
fix(tests): do not throw if page did not produce video (#8112)
Fixes #8103
2021-08-10 01:24:14 -07:00
Dmitry Gozman
3bf3318350
fix(test runner): make sure options, trace and screenshot apply to all contexts (#8083)
- Uses some auto fixtures to set default options and instrumentation on BrowserType.
- Moves screenshot, trace and video to worker-scoped fixtures.
- Throws in page/context when used from beforeAll/afterAll.
- Plumbs around BrowserType to be accessible from Browser and BrowserContext.
2021-08-09 18:09:11 -07:00
Dmitry Gozman
e638c4597f
fix(test runner): do not swallow afterAll failure (#8099) 2021-08-09 14:21:53 -07:00
Andrey Lushnikov
29f7dfa3ee
feat(chromium): roll Chromium to M94 (#8047) 2021-08-09 13:57:17 -07:00
Dmitry Gozman
87548f94c1
feat(test runner): support test fixtures in beforeAll/afterAll (#8082)
Each hook gets its own test scope. This is not too useful for
object fixtures like `page` (although one can use a page in
`beforeAll` to save storage state), but much more useful for option
fixtures like `viewport`.
2021-08-09 13:26:33 -07:00
Dmitry Gozman
41949e559e
Revert "feat(test runner): file scope fixtures (#7969)" (#8081)
This reverts commit 1bbf86d060,
leaving small improvements around.
2021-08-09 12:33:16 -07:00
Joel Einbinder
91394b257c
test(test-runner): add tests to show that grep is case insensitive (#8091) 2021-08-09 14:05:51 -04:00
Andrey Lushnikov
f455b6edc0
feat: introduce vue selector engine (#8070)
This patch adds support for the `vue` selector engine that allows
selecting DOM elements based on the component name.

> **NOTE**: `vue` engine supports Vue2 and Vue2.

References #7189
2021-08-09 01:34:52 -07:00
Pavel Feldman
290f601dae
feat(expect): introduce explicit default async expect timeout (#8071) 2021-08-07 22:08:56 -07:00
Andrey Lushnikov
f3ba2b54ff
feat: introduce react selectors (#8069)
This patch adds support for the `react` selector engine that allows
selecting DOM elements based on the component name.

> **NOTE**: in case of multi-root components (React.Fragment), `react`
engine will select all root DOM elements.

> **NOTE**: `react` engine supports react v15+.

References #7189
2021-08-07 16:51:39 -07:00
Pavel Feldman
40fb9d85e0
feat(test-result): render image diff (#8061) 2021-08-07 15:47:03 -07:00
Pavel Feldman
559d6242f0
chore: roll test runner to ToT (#8063) 2021-08-07 02:11:01 -07:00
Pavel Feldman
3424f59e67
chore(expect): polish matcher names, remote arguable ones (#8060) 2021-08-06 16:58:42 -07:00
Pavel Feldman
efb4af8489
chore: roll test runner to ToT (#8025) 2021-08-06 16:58:08 -07:00
Dmitry Gozman
5f297b6894
feat(junit reporter): add attachments to stdout (#8059)
`JUnitReporter` follows the common format for attachments in JUnit reports,
recognized by GitLab and Jenkins among others.
2021-08-06 15:47:54 -07:00
Pavel Feldman
2e63c59157
feat(trace-viewer): show remote object previews in console (#8024) 2021-08-06 11:37:36 -07:00
Dmitry Gozman
73b7230931
fix(trace viewer): render snapshots with correct viewport size (#8020) 2021-08-05 16:04:09 -07:00
Dmitry Gozman
d846c05619
fix(test runner): make obtainWorker() resolve with null when stopping (#8018)
This ensures that we properly exit from `Dispatcher.run()`, print
epilogue and set the right exit code.
2021-08-05 15:00:00 -07:00
Pavel Feldman
a8d404cd29
feat(test-runner): basic html reporter (#7994) 2021-08-05 13:36:47 -07:00
Max Schmitt
98f9f050a1
fix(isVisible): do not throw when element is not connected (#8012) 2021-08-05 21:10:33 +02:00
Yury Semikhatsky
7454647d8e
test: fix another EOL in expectations (#8009) 2021-08-05 08:59:48 -07:00
Yury Semikhatsky
28fb3c776a
feat: response interception after redirects in chromium (#7910) 2021-08-05 08:49:02 -07:00
Max Schmitt
611a8556c8 test: fix flaky locator-convenience test 2021-08-05 11:56:34 +02:00
Dmitry Gozman
9ab60f66bf
feat(tracing): allow calling tracing.start multiple times (#7992)
Subsequent invocations reset the trace. This removes the `tracing._reset` method.

Also fixed a bug where BASE element was not reset properly.
Also fixed a bug where tracing would affect the result of protocol call
by setting `callMetadata.error` property.
2021-08-04 21:11:35 -07:00
Dmitry Gozman
1bbf86d060
feat(test runner): file scope fixtures (#7969)
These are reset after running tests from a single file.
2021-08-04 21:11:02 -07:00
Max Schmitt
3e491114f2
test: fix some failing locators tests (#7989) 2021-08-04 23:36:27 +02:00
Yury Semikhatsky
8a7cfc08a6
test: use os-speific EOL sequence in test expectaions (#7988) 2021-08-04 20:54:52 +02:00
Max Schmitt
b88199d93e
test: fix locator-misc-1 tests on Android (#7985) 2021-08-04 20:11:17 +02:00
Max Schmitt
869f8d541b
chore: PlaywrightClient/Server enhancements (#7980)
- ensure timeout results in a meaningful message
- add onDisconnect handler
2021-08-04 19:45:33 +02:00
Pavel Feldman
542019f3a1
chore: roll test runner to ToT (#7977) 2021-08-03 22:19:27 -07:00
Dmitry Gozman
ea4f42b7ed
feat(report): add video to attachments (#7976) 2021-08-03 17:07:57 -07:00
Dmitry Gozman
3e05d8e9fa
feat(tracing): introduce _reset() and _export() (#7974)
`tracing._export({ path })` exports current tracing state into a file
and does not require tracing to be stopped.

`tracing._reset()` resets current tracing state, but keeps resources
around so they can be referenced in the future snapshots. Does not stop.

The usage pattern is:
```js
await tracing.start({ screenshots: true, snapshots: true });
// ...
await tracing._reset();
// Do stuff, it will all be in the export below.
await tracing._export({ path });
// ...
await tracing.stop();
```
2021-08-03 16:08:06 -07:00
Yury Semikhatsky
c08117d384
test: fulfilled intercepted response body (#7975) 2021-08-03 15:29:51 -07:00
Max Schmitt
385d489b35
feat(test-runner): re-enable web server (#7906)
Co-authored-by: Joel Einbinder <joel.einbinder@gmail.com>
2021-08-03 23:24:14 +02:00
Max Schmitt
2236d74f3f
chore: locator code style nits (#7972) 2021-08-03 13:32:39 -07:00
Dmitry Gozman
c406b23387
feat(tracing): do not store scripts in trace (#7970)
We do not need them for snapshots.
2021-08-03 13:05:58 -07:00
Joel Einbinder
4fabe5e6e4
feat(drag): sourcePosition and targetPosition (#7803) 2021-08-03 13:12:34 -04:00
Fabian Mendez
731f9453c5
feat(inputValue): implement inputValue for select elements (#7951) 2021-08-03 08:22:40 -07:00
Pavel Feldman
3b34e57ee4
feat(test-runner): introduce test.step (#7956) 2021-08-02 22:11:37 -07:00
Pavel Feldman
5803035c1b
feat(test-runner): introduce steps (#7952) 2021-08-02 17:17:20 -07:00
Pavel Feldman
af30d267b6
feat(test-runner): experiemental expect plumbing (#7926) 2021-07-30 16:07:02 -07:00
Dmitry Gozman
081b8683a3
feat(test runner): expect(locator) matchers to show a nice error on timeout (#7935) 2021-07-30 13:12:49 -07:00
Dmitry Gozman
5a3ebfc9f9
fix(test runner): dot reporter incorrectly splits by 80 (#7925) 2021-07-30 01:34:28 -07:00
Pavel Feldman
4163cec93b
feat(test-runner): introduce actionTimeout and navigationTimeout (#7919) 2021-07-29 21:03:50 -07:00
Dmitry Gozman
34c0c342fa
fix(test runner): make test order stable when fixtures are changing (#7923)
We used to sort based on workerHash, and that changes depending on
the exact worker fixtures list. Now we replace workerHash with
an ordinal when constructing the TestGroup list to preserve the
natural order.
2021-07-29 18:27:47 -07:00
Dmitry Gozman
40901e8b9a
feat(test runner): test.skip(title, testFunction) syntax (#7922) 2021-07-29 14:33:37 -07:00
Pavel Feldman
2c095294c5
feat(locators): introduce allTextContents, allInnerTexts (#7920) 2021-07-29 14:09:35 -07:00
Dmitry Gozman
dd0b089d13
feat(test runner): createContext fixture for multi-context scenarios (#7779) 2021-07-29 14:03:58 -07:00
Joel Einbinder
626dd23ce1
test(test-runner): unflake override-timeout.spec.ts (#7869) 2021-07-29 13:34:46 -07:00
Dmitry Gozman
82d2ec0b2d
test: unflake "max-failures should stop workers" (#7918) 2021-07-29 13:32:44 -07:00