Commit graph

78 commits

Author SHA1 Message Date
Pavel Feldman 9970446f51
chore: remove toMatchAriaSnapshot.path (#34379) 2025-01-17 14:35:15 -08:00
Yury Semikhatsky 587e778a5a
Revert "feat(aria): extend toHaveAccessibleName() to accept an array … (#34361) 2025-01-16 15:04:56 -08:00
Dmitry Gozman be6caed8df
chore: remove expectZone (#34312) 2025-01-16 18:53:32 +00:00
Pavel Feldman 13bdd3c92f
feat(toBeChecked): allow indeterminate expectation (#34269) 2025-01-09 18:18:15 -08:00
Pavel Feldman 0d34369fc0
chore: include actual value in the elementState (#34245) 2025-01-07 15:31:18 -08:00
Pengoose 7f141b2c42
feat: expect(locator).toHaveAccessibleErrorMessage (#33904) 2024-12-27 09:54:16 +00:00
Pavel Feldman a25bda6950
chore: allow storing aria snapshots in files (#33919) 2024-12-10 11:45:16 -08:00
Pavel Feldman 66d9f3acbe
chore: introduce update-snapshots=changed (#33735) 2024-11-22 17:41:31 -08:00
aairiian 7f054ef8c6
feat(aria): extend toHaveAccessibleName() to accept an array of expected accessible names (#33277) 2024-11-18 07:46:47 -08:00
Yury Semikhatsky e24780f825
chore: unshift shortest whitespace prefix only (#33618) 2024-11-15 12:47:25 -08:00
Dmitry Gozman 2aa9e11a7f
fix(aria): normalize whitespace in toMatchAccessible{Name,Description} (#33619) 2024-11-15 02:49:03 -08:00
Dmitry Gozman 33f9c8279c
chore: more aria snapshot fixes (#33534) 2024-11-12 02:26:54 -08:00
Pengoose a501232bf0
fix(expect): adjust normalization for regex values in toHaveText matcher (#33533) 2024-11-11 17:19:04 -08:00
Pavel Feldman d4ad520a9b
chore: fix more aria escaping edge cases (#33460) 2024-11-05 16:22:02 -08:00
Pavel Feldman 135ed28740
chore: more yaml escaping tests (#33387) 2024-10-31 17:14:11 -07:00
Pavel Feldman 676f014b5f
chore: use objects for string aria template notes (#33371) 2024-10-30 17:25:51 -07:00
Pavel Feldman 9ce401d44a
chore: suggest aria snapshots w/ regex (#33334) 2024-10-29 16:19:08 -07:00
Yury Semikhatsky 0ace47e7cf
chore: revert exposed expect error details on TestError (#33310) 2024-10-25 16:20:18 -07:00
Pavel Feldman 74e5e5560f
chore: update missing snapshots by default (#33311) 2024-10-25 16:13:38 -07:00
Yury Semikhatsky c66af9c525
chore: make expect timeout field required in the protocol (#33309) 2024-10-25 15:26:41 -07:00
Yury Semikhatsky 1e8884621a
chore: unify toHaveScreenshot error formatting (#33300) 2024-10-25 12:36:39 -07:00
Pavel Feldman ff5f1628dc
chore: allow aria snapshot rebaselines (#33256) 2024-10-24 16:49:10 -07:00
Pavel Feldman 6ae6b4865c
chore: always use TestInfoErrorImpl (impl) in @playwright/test (#33255) 2024-10-23 17:36:05 -07:00
Yury Semikhatsky aebceb345e
chore: expose expect error details on TestError (#33183) 2024-10-21 11:15:55 -07:00
Pavel Feldman 2e8e7a66cd
chore: implement tree w/o list (#33169) 2024-10-18 13:50:43 -07:00
Pavel Feldman 29c84a33c3
chore: compute aria text consistently with the role accumulated text (#33157) 2024-10-17 17:06:18 -07:00
Pavel Feldman b421bd8b0d
chore: add a basic snapshot generator test (#33123) 2024-10-15 15:21:45 -07:00
Pavel Feldman a38ff6e0d8
chore: experimental toMatchAriaSnapshot (#33014) 2024-10-14 14:07:19 -07:00
Yury Semikhatsky b9cce598dd
fix(screenshot): show image diff inline in errors list (#32997)
The diff is now shown inline in the errors list.

There are 2 possible failures of toHaveScreenshot
* Previous and actual snapshot mismatch. In this case html report will
show diff between Actual/Previous and have Expected as a separate
screenshot.
* Actual/Previous are equal but they differ from the expected. In this
case html report only contains Actual/Expected images and the diff.

Reference: https://github.com/microsoft/playwright/issues/32341

<img width="1039" alt="image"
src="https://github.com/user-attachments/assets/b458f986-cc25-4721-862c-0cc2c1b01a42">
2024-10-10 16:49:17 -07:00
Pavel Feldman 755edfba5b
chore: fallback expect.extend to legacy (#32795) 2024-09-24 14:00:13 -07:00
Dmitry Gozman 268357238a
fix(expect): respect custom message in expect.poll (#32603)
Fixes #32582.
2024-09-16 00:10:06 -07:00
Simon Knott ef4be6afff
feat(test runner): make expect.extend immutable (#32366)
Changes `expect.extend` behaviour so that it doesn't mutate the global
instance and behaves closer to what users expect. This is formally a
breaking change, and I had to remove a test that asserts the breaking
behaviour.

TODO:
- [x] decide wether this is a separate method or a flag for
`expect.extend`
- [x] figure out if we need to change docs
2024-09-12 19:56:38 +02:00
Simon Knott 1511d8643e
fix(test runner): expect.poll error reporting should handle non-expect errors (#32257)
Closes https://github.com/microsoft/playwright/issues/32256

We were expecting all errors to be of type `ExpectError`, but apparently
`expect` propagates rejections in the polling functions right through.
So we also need to handle that case.

I wonder if we have more cases of this. Would it make sense to enable
`useUnknownInCatchVariables` in TypeScript?
2024-08-26 09:39:25 +02:00
Pavel Feldman 37eb66df10
chore: extract performAction in recorder (#32279) 2024-08-23 10:19:44 -07:00
Dmitry Gozman 056997c41f
fix(toHaveScreenshot): attach "expected" when writing a missing expectation (#31745)
Previously, only the "actual" attachment was created, pointing to the
file in `test-results`. Now, the "expected" attachment pointing to the
file in `__screenshots__` is also created. This will help any reporters
that would like to know the "expected" path, for example to do a manual
accept/decline of the baseline.

Fixes #30693.
2024-07-18 02:42:44 -07:00
Dmitry Gozman f4399f7f06
fix(toHaveScreenshot): sanitize attachment names and paths (#31712)
... unless an array of file-system-friendly parts is provided.

Motivation: attachment name is used as a file system path when
downloading attachments, so we keep them fs-friendly.

References #30693.
2024-07-17 07:08:43 -07:00
Max Schmitt ed6abf86c7
fix(expect): throw unsupported error when using this.equals() in expect (#31723) 2024-07-17 13:22:00 +02:00
Yury Semikhatsky 9884c851ff
feat(expect): expose expect timeout (#30969)
Fixes https://github.com/microsoft/playwright/issues/30583
2024-05-24 08:56:43 -07:00
Yury Semikhatsky f7b0490500
chore: remove references to jest expand (#30988)
Since https://github.com/microsoft/playwright/pull/7722 we always set
expand to false
[here](a106428114/packages/playwright/src/matchers/expect.ts (L176))
and don't expose any means to change that (in jest it's
expect.setState).
2024-05-23 13:44:15 -07:00
Yury Semikhatsky fb319e6d3d
fix: match client step and server action by explicit stepId (#30641)
Matching bu `apiName@wallTime` fails when two actions start at the same
time, e.g. two parallel api requests. Moreover, it results in trace
actions that have parent set to themselves, which in turn causes
infinite loop in the trace viewer. To avoid this problems we write
stepId explicitly to the library trace and use those step ids to find
corresponding test runner steps.

The stepId is passed via zone in case of expect, because the protocol
step is quite deep in the call chain after or explicitly in case of API
call steps created by the test runner instrumentation.
2024-05-14 12:10:46 -07:00
Viktor Szépe 150cbcbdf3
chore: fix typos (#30645) 2024-05-08 19:40:03 +01:00
Dmitry Gozman 6d20da568e
feat: expect(locator).toHaveRole(role) (#30555)
References #13517. Fixes #18332.
2024-04-25 15:26:10 -07:00
Dmitry Gozman b0fbe058ae
feat: TestProject.ignoreSnapshots (#30466) 2024-04-22 16:16:38 -07:00
Dmitry Gozman 4a275b8eca
feat: expect(locator).toHaveAccessibleDescription (#30463)
References #18332.
2024-04-22 12:33:30 -07:00
Dmitry Gozman eea1f9984f
feat: expect(locator).toHaveAccessibleName (#30420)
References #18332.
2024-04-18 12:28:55 -07:00
Yury Semikhatsky 3bdbe4284e
fix(steps): make expect.toPass and expect.poll step containers (#30389)
Fixes https://github.com/microsoft/playwright/issues/30322
2024-04-16 16:18:37 -07:00
Yury Semikhatsky 73fce8fb98
chore: replace Zones with AsyncLocalStorage (#30381)
Reference https://github.com/microsoft/playwright/issues/30322
2024-04-16 12:51:20 -07:00
Max Schmitt b2ded9fed1
fix(expect): throw better received error when no element was found (#29890)
Fixes https://github.com/microsoft/playwright/issues/29873
2024-04-10 10:01:19 +02:00
Козынченко Вячеслав e58a33a0ae
feat(expect) - add ignoreCase option for toHaveURL (#30192)
feat(expect): add ignoreCase option for toHaveURL

Fixes #30057
2024-04-02 16:20:46 -07:00
Hansanto a950a7b86b
feat: Support intervals arg for toPass (#30037)
Fixes #30040

# Context

In the `playwright.config` file, we can custom the default `timeout`
property for `expect.toPass` by the property:

```ts title='playwright.config.ts'
export default defineConfig({
  // ...
  expect: {
    toPass: {
      timeout: 60_000,
    },
  },
});
```

However, we can't customize the `intervals` option. So the default value
is always `[100, 250, 500, 1000]`.

# Goal

Add the possibility to customize the intervals option from the
`playwright.config` file.

```ts title='playwright.config.ts'
export default defineConfig({
  // ...
  expect: {
    toPass: {
      timeout: 60_000,
      intervals: [1000, 2000, 3000]
    },
  },
});
```
2024-03-29 10:17:29 -07:00