Commit Graph

639 Commits

Author SHA1 Message Date
Dmitry Gozman
f0c5810609
feat(assertions): support toBeEditable({ editable }) (#17065) 2022-09-06 12:50:45 -07:00
Dmitry Gozman
306ab34aa3
feat(assertions): support toBeEnabled({ enabled }) (#17058) 2022-09-06 11:40:34 -07:00
Ross Wollman
c58bfd0552
fix(html-reporter): duplicate attachment name (#16929)
Fixes #16456.

The extra span/name was coming from
077b8a9289/packages/html-reporter/src/links.tsx (L72)
(in conjunction with the line above it).

These two lines assume `path` and `body` are mutally exclusive.

Regression likely introduced by the PR that added the now removed line #10778.
2022-09-03 15:25:56 -07:00
Dmitry Gozman
1dc2a33896
docs: clarify that toBeHidden works when nothing matches (#17057) 2022-09-02 16:36:19 -07:00
Andrey Lushnikov
fafd9837ba
feat: introduce the --ignore-snapshots option (#17004)
This patch introduces `--ignore-snapshots` Playwright Test CLI option,
and `ignoreSnapshots` configuration argument.
2022-09-01 05:34:36 -07:00
Andrey Lushnikov
38f2a5d5f5
fix: include headlessness as a launch argument to browser (#16898) 2022-08-31 10:26:13 -07:00
nate-ro
409bab59ea
chore: added starting time of test to the base json reporter (#16885) 2022-08-30 20:03:21 -07:00
Yury Semikhatsky
f30ac1d678
fix: support toHaveAttribute(name, options) (#16941) 2022-08-30 17:53:00 -07:00
Yury Semikhatsky
11dfd31dd9
feat: --pass-with-no-tests option (#16902) 2022-08-29 15:46:34 -07:00
Andrey Lushnikov
622c73cc1e
feat: expect(locator).toHaveAttribute to assert attribute presence (#16767)
This patch changes `expect(locator).toHaveAttribute()` so that the
`value` argument can be omitted. When done so, the method will
assert attribute existance.

Fixes #16517
2022-08-25 05:28:34 -07:00
Max Schmitt
9341bf12c6
docs(dotnet): enable api response assertions (#16799) 2022-08-24 08:30:47 -07:00
Pavel Feldman
4d892475da
chore: do not use experimental loader for web server (#16733) 2022-08-23 10:22:05 -07:00
Pavel Feldman
d7be1fcca8
fix(esm): allow importing ts from esm (#16735) 2022-08-23 10:20:56 -07:00
Max Schmitt
e344fe60e7
fix(pwt): compatibility in CWD with wrong casing (#16636) 2022-08-22 21:45:59 +02:00
Sergio Freire
abe7cf23a7
fix(junit reporter): remove source location from classname attribute (#16499) 2022-08-19 16:42:21 -07:00
Max Schmitt
7e2aec7454
chore: align more ESLint rules with VSCode formatting (#16647) 2022-08-18 20:12:33 +02:00
sand4rt
d9850e0e86
feat(ct): react rerender (#16560) 2022-08-16 10:47:33 -07:00
Pavel Feldman
e64b09cc28 Revert "feat(ct): react rerender (#16549)"
This reverts commit a62accf8ae.
I'll reapply them in order.
2022-08-15 13:17:15 -07:00
sand4rt
a62accf8ae
feat(ct): react rerender (#16549) 2022-08-15 13:10:38 -07:00
Pavel Feldman
bd06d1604f
chore: render original exception location in error frame (#16515) 2022-08-15 09:28:55 -07:00
Elizaveta Bezyaikna
9f22ae9aa9
chore: add id for each test to JSONReporter (#16494) 2022-08-15 09:28:21 -07:00
Pavel Feldman
e1d3246d1c
fix(ct): pass local config to preview (#16481) 2022-08-12 10:37:35 -07:00
Johannes Loher
3e67a7c836
feat(plugins): send accept header in webServer url checking (#16251) 2022-08-10 12:48:37 -07:00
Yury Semikhatsky
d0030a7434
docs: test.step return value (#16421) 2022-08-10 11:21:13 -07:00
Dmitry Gozman
baa2ef2700
fix(test runner): show interrupted as yellow (#16396)
Drive-by: fix unreadable character in "duplicate titles" error.
2022-08-09 21:17:30 -07:00
Dmitry Gozman
f58c376443
fix(test runner): do not resolve relative imports through baseUrl (#16395) 2022-08-09 21:16:27 -07:00
Andrey Lushnikov
0c7f086096
chore: cut v1.25 branch (#16390) 2022-08-09 17:09:58 -07:00
Dmitry Gozman
2efe947dc8
chore: avoid evaluates in screenshot on failure (#16386) 2022-08-09 14:03:07 -07:00
Max Schmitt
e725b5f8a9
fix(esm): fix TS type check with NodeNext mode (#16340) 2022-08-09 20:06:06 +02:00
Kian-Meng Ang
22f0723c72
docs: fix typos in docs (#16370)
Co-authored-by: Debbie O'Brien <debs-obrien@users.noreply.github.com>
Co-authored-by: Max Schmitt <max@schmitt.mx>
2022-08-09 15:47:17 +02:00
Jeremy Daley
ee02afdd9b
chore: add fallback "default" key to "." exports object (#16350)
Fixes #16345.
2022-08-08 12:19:15 -07:00
Pavel Feldman
a2e05bb419
fix(ct): use stoppable server (#16329) 2022-08-08 08:54:56 -07:00
Dmitry Gozman
f6d94f0ac9
chore: update "X fatal errors" message (#16325)
Also, exlude certain errors from triggering this message:
- `no tests found`
- `duplicate test titles are not allowed`
- `--forbid-only found a focused test`
- `Timed out waiting 3600s for the entire test run`
2022-08-05 21:21:43 -07:00
Dmitry Gozman
7a86e140f5
chore: remove TestProject.projectSetup (#16321)
There are better ideas to address this issue in more general manner.
2022-08-05 15:24:30 -07:00
Dmitry Gozman
1f40e3d22b
chore: make Reporter.onExit an internal method (#16280) 2022-08-05 13:41:00 -07:00
Dmitry Gozman
424431fcfe
docs: explain toHaveText and toContainText in more details (#16283) 2022-08-05 10:27:17 -07:00
Dmitry Gozman
cb30cb4eb7
feat(test runner): add --trace cli option (#16277) 2022-08-05 09:20:39 -07:00
Dmitry Gozman
919b1cbb22
fix(test runner): do not swallow afterEach errors after skipped tests (#16276)
Drive-by: add more test runner logging.
2022-08-04 18:49:23 -07:00
Pavel Feldman
3aa5710b49
feat(reuse): retain different browser types when reusing (#16269) 2022-08-04 15:04:00 -07:00
sand4rt
bd5eddd62e
fix(ct): multi root vue components (#16211) 2022-08-04 10:43:43 -07:00
Pavel Feldman
7645ac25a0
chore: watch mode straw man (#16127) 2022-08-04 08:09:54 -07:00
sand4rt
e5cc78af67
chore(ct): change setProps to rerender (#16204) 2022-08-03 18:14:00 -07:00
Pavel Feldman
8eca6339c2
feat(reuse): account for the browser launch args when reusing the bro… (#16229)
feat(reuse): account for the browser launch args when reusing the browsers
2022-08-03 17:32:29 -07:00
Dmitry Gozman
03fe75251b
fix(test runner): show tests as interrupted when maxFailures stops them (#16178)
Previously, we marked these tests as skipped, and it was sometimes
confusing, because they did actually run and produce some output/artifacts.
2022-08-03 15:25:25 -07:00
Dmitry Gozman
445fe032f5
feat(test runner): separate interrupted status from skipped (#16124) 2022-08-02 12:55:43 -07:00
Pavel Feldman
de147fafba
chore: experimental project isolation mode (#16081) 2022-08-02 11:22:22 -07:00
Dmitry Gozman
5481e25015
chore: print full stacks when PWDEBUGIMPL is set (#16113)
For debugging purposes, especially on the client's computers.
2022-08-01 13:44:59 -07:00
Dmitry Gozman
3112edb4ca
feat(test runner): TestProject.projectSetup (#16063)
`projectSetup` is a project-scoped alternative to `globalSetup`.
It is only executed if at least one test from the project is scheduled to run.
2022-08-01 09:01:23 -07:00
Pavel Feldman
5a79054544
feat(innerloop): allow reusing browsers over the remote connection (#16065) 2022-07-31 14:31:17 -07:00
sand4rt
557db4c35e
chore(ct): mount result refactor (#16067) 2022-07-29 20:07:23 -07:00
Yury Semikhatsky
7d306bbc66
feat: return value from step (#16060) 2022-07-29 15:16:07 -07:00
Dmitry Gozman
e830fe821d
feat(test runner): introduce test.describe.fixme (#16059) 2022-07-29 12:44:22 -07:00
Yury Semikhatsky
af8e3e7afa
feat: print response text when toBeOK fails (#16040) 2022-07-29 11:46:48 -07:00
sand4rt
4a47e275c8
feat(ct): vue set props (#16058) 2022-07-29 11:45:06 -07:00
Pavel Feldman
d73f9b7b88
chore: experimental test server implementation (#16033) 2022-07-29 11:40:33 -07:00
Dmitry Gozman
62e4e80599
feat(test runner): show the number of fatal errors at the end (#15975) 2022-07-28 14:46:21 -07:00
Max Schmitt
a089bf3df5
chore(test-runner): better error message if page gets used inside beforeAll (#16012) 2022-07-28 23:07:28 +02:00
Dmitry Gozman
3d89506704
fix(fixtures): make undefined option mean "default value" (#16026)
In the following example, `locale` inside the `describe`
would be reverted to the default value:

```js
test.use({ locale: 'en-GB' });

test.decsribe(() => {
  test.use({ locale: undefined });
});
```
2022-07-28 12:57:05 -07:00
Pavel Feldman
8c190c3e09
feat(testId): expose persistent test id (#16003) 2022-07-27 20:17:19 -07:00
Pavel Feldman
2eff208e54
feat(ct): allow unmounting components (#15974) 2022-07-27 15:12:36 -07:00
Max Schmitt
f663e5d6cc
chore: fix tests when repo checkout was not playwright (#15994) 2022-07-27 18:09:55 +02:00
Dmitry Gozman
6009804e0e
Revert "fix(test runner): ignore undefined values in fixtures definit…ions (#15119)" (#15979)
Revert "fix(test runner): ignore undefined values in fixtures definitions (#15119)"

Revert commit d7b63fa0b4.
Add a test for the broken behavior.
2022-07-27 08:51:45 -07:00
Dmitry Gozman
cd9dccbe27
fix(test runner): serial suites inside parallel suite should run in parallel (#15769) 2022-07-26 13:38:25 -07:00
Dmitry Gozman
c0d78c5642
fix(runner): friendly error message instead of "digests do not match" (#15939) 2022-07-26 08:53:32 -07:00
Dmitry Gozman
9ce727c936
feat(list reporter): number test runs to see testing progress (#15693)
Drive-by: replace a few colors.gray with colors.dim for better contrast.
2022-07-25 13:22:25 -07:00
Dmitry Gozman
f88b1e9cde
feat(reporters): separate onExit from onEnd (#15926)
This is now used by html reporter to open UI.
2022-07-25 13:20:33 -07:00
Max Schmitt
004cd9273c
fix(test-runner): multiple webServer types (#15901) 2022-07-25 10:39:06 +02:00
Dmitry Gozman
f954891491
fix(runner): globalTeardown without globalSetup should work (#15814) 2022-07-20 12:41:35 -07:00
Max Schmitt
507e921371
chore: bump 'ip' peer dependency (#15750) 2022-07-18 20:04:26 +02:00
Dmitry Gozman
a56d801352
fix(test runner): show fixture name when worker times out (#15724) 2022-07-15 13:05:48 -07:00
Yury Semikhatsky
582b5e08b2
docs: clarify toHaveURL parameter semantics (#15723) 2022-07-15 11:09:20 -07:00
Dmitry Gozman
da2fdc2e2e
fix(esm loader): support Node 18.6 (#15694)
A small change in the API requires `shortCircuit: true` when returning the
transformed source.
Another API change removes third argument from the chained resolve/load,
but passing three instead of two still works.
2022-07-14 19:10:39 -07:00
Max Schmitt
4bba41ab8f
Revert "feat(matchers): add toContainClass (#15491)" (#15670)
This reverts commit e4debd0bf6.
2022-07-14 22:03:37 +02:00
Andrey Lushnikov
df9beb4045
chore: cut v1.24 (#15654) 2022-07-14 09:42:40 -07:00
Pavel Feldman
d02914fa3a
chore: relax transpilation criteria to allow ems imports of .vue files (#15592) 2022-07-13 16:11:38 -07:00
Dmitry Gozman
22ead7b5ab
Revert "fix(test runner): handle istty in line reporter (#15455)" (#15633)
This reverts commit 767babc3a2.
2022-07-13 15:11:56 -07:00
Dmitry Gozman
51c3ea55ed
Revert "feat(line reporter): show testing progress (#15547)" (#15631)
This reverts commit e76d9b3b28.
2022-07-13 13:54:26 -07:00
Max Schmitt
ee7d60fcee
docs: migrate page actions to locator actions 2/n (#15603) 2022-07-13 11:50:18 +02:00
Pavel Feldman
00848b1bcf
fix(ct): restore public folder deployment (#15594) 2022-07-12 16:14:48 -07:00
Yury Semikhatsky
a6daf600a9
fix: support hasColors and getColorDepth in worker (#15590) 2022-07-12 14:47:14 -07:00
Pavel Feldman
3939b9f36e
chore: migrate component testing to server-side page reuse (#15477) 2022-07-12 14:30:24 -07:00
Max Schmitt
e4debd0bf6
feat(matchers): add toContainClass (#15491) 2022-07-12 23:17:10 +02:00
Pavel Feldman
f3d3231b29
feat(ct): allow configuring apps per test (#15551) 2022-07-12 09:37:33 -07:00
Dmitry Gozman
64353c4b96
fix(test runner): make sure worker cleans up if last test was skipped (#15552) 2022-07-11 21:33:56 -07:00
Dmitry Gozman
e76d9b3b28
feat(line reporter): show testing progress (#15547)
Line reporter now shows stats in addition to the test name:
```
[chromium] › page/page-click-react.spec.ts:108:1 › should not retarget when element changes on hover
[21/93] Passed: 17 Flaky: 0 Failed: 0 Skipped: 4 (7s)
```
2022-07-11 20:44:50 -07:00
Dmitry Gozman
7727ebe758
feat(html report): improve test list view (#15543)
- Two lines per test: title and location.
- Align project labels.
- Add trace badge that opens trace viewer.
- Add video and image diff badges that show scrolled test result view.
2022-07-11 19:47:15 -07:00
Pavel Feldman
3a9b29f46c
feat(ct-vue): allow configuring apps per test (#15538) 2022-07-11 13:54:05 -07:00
Pavel Feldman
5fc637e44a
chore: experimental resetForReuse (#15432) 2022-07-11 13:10:08 -07:00
Max Schmitt
98ea418124
fix(expect): expect.not types (#15487) 2022-07-11 18:31:53 +02:00
Pavel Feldman
dd0eb5fb1d
fix(ct): support components w/o mount options (#15501) 2022-07-09 11:22:49 -07:00
Dmitry Gozman
6dc4a51c92
fix(test runner): more friendly test duration (#15476)
fix(test runner): more firendly test duration

Reported test duration now does not include time spent in
`beforeAll`, `afterAll` and fixtures that have a separate timeout.

This is to avoid different reported test execution time,
depending on the test execution order.
2022-07-08 11:45:44 -07:00
Dmitry Gozman
894ead5198
fix(test runner): mention fixture in worker teardown timeout error message (#15499) 2022-07-08 11:44:37 -07:00
Yury Semikhatsky
51aa5fea78
fix: colors in console output from worker (#15421)
Color highlights regressed in #14455

Fixes #15366
2022-07-07 17:56:41 -07:00
Dmitry Gozman
738d71ebc2
chore: unify two copies of monotonicTime (#15473) 2022-07-07 15:59:49 -07:00
Ross Wollman
799d4703bc
feature(test-runner): multiple web servers (#15388)
Fixes #8206.

Since #8206 is a long-awaited (~ 1 year old), popular (~ 45 reactions, frequently requested in community channels, etc.), this PR aims to unblock folks.

Notably, we do not innovate on the `webServer` API, despite knowing we're not in love with it. We'll save the innovation for either Plugins or a new `LaunchConfigs` option. (We haven't yet arrived at a Plugin API we like, and instead of launching a new option guessing what the "better" launchConfig API would be, let's wait and see how folks use this new Array-variant of `webServer` which—despite its name—can be used for non-Web Server launches!
2022-07-07 15:27:21 -07:00
Dmitry Gozman
767babc3a2
fix(test runner): handle istty in line reporter (#15455)
When running without tty, line reporter outputs a line for each
percent of the tests, thus limiting the output to ~100 lines.

In addition, reporters now support PLAYWRIGHT_LIVE_TERMINAL
env variable to force tty mode.
2022-07-07 09:55:12 -07:00
Dmitry Gozman
89c16cbc8b
feat(runner): anonymous describes (#15424)
Useful to set some options without coming up with an artificial name.

```js
test.describe(() => {
  test.use({ colorScheme: 'dark' });

  test('my test', () => {});
})
```
2022-07-06 13:54:11 -07:00
Pavel Feldman
1b264010db
fix(ct): tolerate compiled react components (#15422) 2022-07-06 13:44:06 -07:00
Dmitry Gozman
c02d83fb11
fix(runner): filter only after duplicate titles check (#15401) 2022-07-06 12:51:26 -07:00
Dmitry Gozman
ee82837fb5
fix(fixtures): do not run user function when required fixture has failed (#15385)
Currently, it is possible to run a function, e.g. a second `beforeEach` hook,
that will receive `null` for the fixture that has already failed before.

This PR skips running any user function that uses a fixture that has already
failed, just like if the fixture would be initialized again and failing for
the second time.
2022-07-05 17:15:28 -07:00