Commit graph

427 commits

Author SHA1 Message Date
Andrey Lushnikov c3a035560a
chore: mark v1.19.2 (#12320) 2022-02-23 15:00:31 -08:00
Andrey Lushnikov d07e05fa7b
Revert "cherry-pick(#12300): chore: best-effort cleanup for output folders that are mounted (#12318)" (#12322)
This reverts commit 0a1c1dad67.

Reason for revert: turns out this fix results in a 5-second delay
when starting tests in docker, with `test-results` folder being
a non-removable mount.

The reason for the delay is the `maxBusyTries` option that we
supply by default to rimraf when trying to remove the folder.

While this option might come handy when removing temporary
browser profile folder, it doesn't serve us well in this particular
usecase.

References #12106
2022-02-23 14:10:27 -08:00
Andrey Lushnikov 0a1c1dad67
cherry-pick(#12300): chore: best-effort cleanup for output folders that are mounted (#12318)
Fixes #12106
2022-02-23 13:15:35 -08:00
Pavel Feldman 5b17ca9d56 cherry-pick(#12250): fix(electron): do not attach external debugger when running Electron tests 2022-02-19 19:00:41 -08:00
Andrey Lushnikov d22bde13c4
chore: mark v1.19.1 (#12132) 2022-02-15 13:25:32 -08:00
Andrey Lushnikov e57b4b5073
cherry-pick(#12070): fix: propagate exit code in experimental mode (#12133)
SHA: 5db7ce5964

In experimental ESM mode a child process is forked in order to run the tests. Currently the exit code of this child process is not propagated to the exit code of the parent process, which means that the process exits with a status code of `0` even if some of the tests failed.

This makes it difficult to use Playwright in CI in experimental mode, as the CI pipeline as a whole will pass despite the test failures.

This change addresses this by propagating the exit code in the case where it is non-zero.

Co-authored-by: pierscowburn <me@pierscowburn.com>
2022-02-15 13:25:14 -08:00
Andrey Lushnikov 46aeb8fe3d
cherry-pick(#12124):fix(docker): add missing dependency to the docker 1.19 (#12127)
SHA: e6d79a4f10

The `libxtst6` is required in both amd64 and arm64.

Fixes #12075
2022-02-15 12:49:33 -08:00
Yury Semikhatsky d8bc6dbeea
cherry-pick(1.19): always return non-empty body regardless of request method (#12102) (#12121) 2022-02-15 11:24:15 -08:00
Andrey Lushnikov 241add240c
cherry-pick(#12025): chore(dotnet): do not use global CLI and use ps1 instead (#12047)
SHA: 7e7996a7b7
Fixes https://github.com/microsoft/playwright-dotnet/issues/2005

Co-authored-by: Max Schmitt <max@schmitt.mx>
2022-02-11 11:29:04 -08:00
Andrey Lushnikov aafaa2b9ed
chore: mark v1.19.0 (#11981) 2022-02-11 09:42:54 -08:00
Pavel Feldman 8a52c3ca76 cherry-pick(#12022): chore: don't close page in generated test 2022-02-11 08:12:54 -08:00
Pavel Feldman 73d78f5988 cherry-pick(#12020): chore: headless mode for codegen 2022-02-10 21:24:22 -08:00
Andrey Lushnikov 786bb337f0
cherry-pick(#11991): fix(mac): avoid printing empty line to stderr on mac (#11993)
SHA: 1f6b84f445

It turns out, `sw_vers` prints an empty stderr line and we inherit it.

Co-authored-by: Dmitry Gozman <dgozman@gmail.com>
2022-02-09 15:38:30 -08:00
Andrey Lushnikov 4959558527
cherry-pick(#11973): fix: proper chrome-beta channel installation on MacOS (#11978)
SHA: 1e1a6acaf7

chrome-beta installation on MacOS should download universal binaries.

The old download URL for chrome-beta was downloading Chrome Beta M96
2022-02-09 11:40:41 -08:00
Yury Semikhatsky eaeb7de95a
cherry-pick(#11954): respect tracing config for APIRequestContext (#11976)
706c897031

Fixes #10585
2022-02-09 11:31:10 -08:00
Pavel Feldman 9ce8572c78
chore: don't run debugger on pause() (#11948) 2022-02-08 14:24:13 -08:00
Yury Semikhatsky 985f932033
chore(trace-viewer): introduce MultiTraceModel (#11922) 2022-02-08 12:27:29 -08:00
Pavel Feldman 1b3c7c03b6
chore: fix(stack): ignore stack frames inside whole core (#11935) 2022-02-08 10:33:50 -08:00
Pavel Feldman 9f35a97a55
chore(chrome): tolerate unknown target types (#11936) 2022-02-08 09:46:05 -08:00
Pavel Feldman dbd124d84b
chore: disable page.pause() when JS debugger is attached (#11926) 2022-02-07 19:21:58 -08:00
Dmitry Gozman 7912c515a3
fix(fixtures): account for default options being undefined (#11916) 2022-02-07 17:11:36 -08:00
Yury Semikhatsky 1e00218ead
feat(tracing): suport loading multiple files in trace viewer (#11880) 2022-02-07 17:05:42 -08:00
Pavel Feldman c3c99a5f66
chore: shift left the inspector window. 2022-02-07 10:41:33 -08:00
Dmitry Gozman f82e09be04
feat(codegen): generate locators and frame locators (#11873) 2022-02-04 19:27:45 -08:00
Dmitry Gozman c45dacc834
feat(codegen): make selector generator strict (#11856)
This is required to migrate to locators.
2022-02-04 07:34:23 -08:00
Andrey Lushnikov 547a32885b
feat: hide blinking cursor when making screenshots (#11854)
References #9938
2022-02-03 21:44:23 -08:00
github-actions[bot] f96b1dd43b
feat(webkit): roll to r1609 (#11824) 2022-02-03 08:20:39 -08:00
Pavel Feldman 1215057ca1
chore: use ipc transport for out-of-process driver (#11826) 2022-02-02 21:26:45 -08:00
Dmitry Gozman f587a43932
feat(locator): "has" option (#11411)
This introduces `locator('div', { has: locator })` syntax that matches elements containing other elements.
Can be used together with `hasText`.

Internally, has selector engine takes an inner selector escaped with double-quotes:
`div >> has="li >> span >> text=Foo" >> span`.
2022-02-02 16:55:50 -08:00
github-actions[bot] fba523a9d0
feat(chromium): roll to r965416 (#11802)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Max Schmitt <max@schmitt.mx>
2022-02-02 11:39:10 +01:00
Max Schmitt c752b28516
chore: pin production dependencies (#11793) 2022-02-02 11:14:41 +01:00
Andrey Lushnikov b0daa7754f
feat: filter stack traces to exclude test runner frames (#11795)
Before:

```bash
Running 1 test using 1 worker
  1) [chromium] › tests/example.spec.ts:3:1 › should work ==========================================

    Error: expect(received).toBe(expected) // Object.is equality

    Expected: 2
    Received: 1

      2 |
      3 | test('should work', async({page}) => {
    > 4 |   expect(1).toBe(2);
        |             ^
      5 | });
      6 |

        at Proxy.<anonymous> (/Users/andreylushnikov/prog/playwright/packages/playwright-test/src/expect.ts:151:30)
        at /Users/andreylushnikov/tmp/tests/example.spec.ts:4:13
        at /Users/andreylushnikov/prog/playwright/packages/playwright-test/src/workerRunner.ts:335:13
        at runNextTicks (node:internal/process/task_queues:61:5)
        at processImmediate (node:internal/timers:437:9)
        at TestInfoImpl._runFn (/Users/andreylushnikov/prog/playwright/packages/playwright-test/src/testInfo.ts:164:7)
        at WorkerRunner._runTestWithBeforeHooks (/Users/andreylushnikov/prog/playwright/packages/playwright-test/src/workerRunner.ts:317:24)
        at TimeoutRunner.run (/Users/andreylushnikov/prog/playwright/packages/playwright-core/src/utils/async.ts:48:14)
        at TestInfoImpl._runWithTimeout (/Users/andreylushnikov/prog/playwright/packages/playwright-test/src/testInfo.ts:151:7)
        at WorkerRunner._runTestOrAllHook (/Users/andreylushnikov/prog/playwright/packages/playwright-test/src/workerRunner.ts:276:5)
        at WorkerRunner._runSuite (/Users/andreylushnikov/prog/playwright/packages/playwright-test/src/workerRunner.ts:190:11)
        at WorkerRunner.run (/Users/andreylushnikov/prog/playwright/packages/playwright-test/src/workerRunner.ts:137:9)
        at process.<anonymous> (/Users/andreylushnikov/prog/playwright/packages/playwright-test/src/worker.ts:87:5)
```

after:

```
Running 1 test using 1 worker
  1) [chromium] › tests/example.spec.ts:3:1 › should work ==========================================

    Error: expect(received).toBe(expected) // Object.is equality

    Expected: 2
    Received: 1

      2 |
      3 | test('should work', async({page}) => {
    > 4 |   expect(1).toBe(2);
        |             ^
      5 | });
      6 |

        at /Users/andreylushnikov/tmp/tests/example.spec.ts:4:13
```
2022-02-01 18:40:44 -08:00
Yury Semikhatsky e7bd62f202
docs(electron): minimal version (#11792) 2022-02-01 14:45:30 -08:00
Max Schmitt 028afb167b
chore: bump production dependencies (#11787) 2022-02-01 21:27:34 +01:00
Caio Agiani b6b60decdf
fix: typos (#11789) 2022-02-01 11:09:41 -08:00
Yury Semikhatsky c2f6462a6b
fix(trace-viewer): info message for actions without snapshots (#11765) 2022-02-01 09:26:38 -08:00
Pavel Feldman c82f2641d7
fet(list-files): report per-project test dir and filters (#11764) 2022-02-01 08:08:56 -08:00
Andrey Lushnikov 2336692e8a
feat: support clarification message for expect (#11735)
The clarification message is displayed in the HTML report as the name of the step:

![image](https://user-images.githubusercontent.com/746130/151852652-48194140-5ea4-439d-afee-12583a8caf71.png)

It is also shown in terminal output:

![image](https://user-images.githubusercontent.com/746130/151852666-5c956ef1-6e94-4bc2-8e55-b58688dfc7e0.png)

Fixes #7816
2022-01-31 17:14:59 -08:00
Dmitry Gozman 0b04c7d504
fix(drag&drop): relax layout shift logic when dropping (#11760)
When element that is being dragged stays under the mouse,
it prevents the hit target check on drop from working,
because drop target is overlayed by the dragged element.

To workaround this, we perform a one-time hit target check
before moving for the drop, as we used to.
2022-01-31 16:21:35 -08:00
Yury Semikhatsky 129d9d3643
docs(tracing): clarify capture semantics (#11756) 2022-01-31 11:44:10 -08:00
github-actions[bot] 22989ffb98
feat(firefox-beta): roll to r1316 (#11675)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2022-01-31 19:06:09 +01:00
Andrey Lushnikov 3a4e506479
chore: extract SigIntWatcher (#11749)
This is to reduce the size of the long `_run` method in the `runner.ts`.
It also might come handy around the codebase.
2022-01-31 08:51:22 -08:00
Xiaoxing Ye a35c249fdc
fix: quote path to prevent space issue (#11733)
Co-authored-by: Xiaoxing Ye <xiaoye@microsoft.com>
2022-01-29 09:56:58 -08:00
Yury Semikhatsky 401cd9c0ee
fix(fetch): do not throw on empty response body with br encoding (#11708) 2022-01-28 12:58:58 -08:00
Yury Semikhatsky 84248f6e48
fix(webkit): handle will/didCheckPolicyForNavigation (#11631) 2022-01-27 14:58:43 -08:00
Yury Semikhatsky 480338d5f3
fix: create traces dir in /tmp instead of cwd (#11699) 2022-01-27 14:58:17 -08:00
Yury Semikhatsky d305a2ab3f
fix: throw in route.continue if it is called twice (#11701) 2022-01-27 14:58:02 -08:00
Andrey Lushnikov 0606afb2e6
chore: rename env variables (#11661)
These variables aren't CLI-only anymore, so pick some more general
names for them.

Note: all language ports would need to follow-up with the rename
after the next roll.

Fixes #11450
2022-01-27 09:06:43 -08:00
github-actions[bot] d6e6d33db3
feat(firefox): roll to r1316 (#11676)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2022-01-27 09:04:11 -08:00
hackerman 872a4be752
fix(server): handle = in cookie values correctly (#11613) 2022-01-26 11:27:43 -08:00