Skip to content

v0.59.0

Choose a tag to compare

@PhenX PhenX released this 22 Oct 21:11
4262165

This release works through the Piwi Picker and editor audits: the picker picks inside open shadow roots, narrows a locator to the repeated row or card it sits in, words its results and writes the action and assertion an element calls for, while the VS Code and JetBrains integrations gain a getting-started walkthrough, a Failures node per Playwright config, running the test at the cursor, and every --repeat-each result.

Full diff: v0.58.0…v0.59.0

✨ Highlights

  • 🎯 Picking that reaches more of the page — Pick elements inside open shadow roots, pick the outlined or focused element with Enter, and keep the picked element outlined with an offer to pick another.
  • 🧱 Repeated rows and cards — Piwi Picker narrows a locator to the repeated row or card it sits in, derives the repeated pattern in multi-pick, and lint suggests test ids from names and repeated containers.
  • ✍️ The action and the assertion — Pick results are worded instead of scored, and Piwi Picker writes the action and the assertion the picked element calls for.
  • 🧪 A Locators console with a history — The console keeps a history, copies a locator in other forms, adds it to the session and sends it to the paired editor.
  • ⏯️ Recordings you can pause and replay — Pause and resume a recording from its bar, give it a title its spec and steps file take, and replay a plain recording before exporting it.
  • 🧑‍💻 Editors, from first run to the test at the cursor — A getting-started walkthrough in VS Code and a first-run notification in JetBrains, one Failures node per Playwright config, running the test at the cursor and running tests as VS Code tasks.
  • 🔁 Every --repeat-each result kept — A run keeps each repetition of a test, and the editors read a repeated run's total from its counts.
  • 📍 Lists as you left them — Coming back to a page shows each list, and each tab's scroll, as the user left it.

Features

Picking & ranking

  • app: pick elements inside open shadow roots (0eb3280)
  • app: pick the outlined or the focused element with Enter (115f5c6)
  • extension: keep the picked element outlined and offer pick another (9507834)
  • extension: word each pick result instead of showing its score (d1dd1cf)
  • extension: write the action and the assertion the element calls for (1a8a0dd)
  • extension: skip the anchors step when a locator finds the element alone (5f9974b)
  • extension: build the quick wins and the ranking fixes of the Piwi Picker audit (3a9c75b)

Repeated rows, cards & lint

  • extension: narrow a locator to the repeated row or card it sits in (02dc310)
  • extension: derive the repeated row or card pattern in multi-pick (35bf614)
  • extension: suggest lint test ids from names and repeated containers (7209922)

Locators console & sessions

  • extension: give the Locators console a history, Copy as and Add to session (ea7ffdc)
  • extension: add a picked locator to the session from the pick results (b060c01)
  • extension: send the Locators console's locator to the paired editor (171273f)
  • extension: send the top locator to the editor from the elements sidebar (53711e7)
  • extension: start Pick, Lint and Tested elements from the Piwi panel's toolbar (a3e031d)

Recording

  • extension: pause and resume a recording from its bar (550bb78)
  • extension: give a recording a title its spec and steps file take (cb18885)
  • extension: replay a plain recording before exporting it (d1aaeb5)

Connecting Piwi Picker

  • extension: list the sites Piwi Picker may run on, with Revoke (9d8a729)
  • extension: offer the paired desktop app as the instance, and the reverse (df137c9)
  • extension: say in the popup and the settings whether the instance answers (2ee3cb2)
  • extension: show the compact tiles' hints and say what to do when not set up (5b5b441)

Piwi in your editor

  • ide: a getting-started walkthrough in VS Code and a first-run notification in JetBrains (eaa6e66)
  • ide: one Failures node per Playwright config, and a status bar for the active file's config (fdb65b6)
  • ide: run the test at the cursor, choose a failure's severity, run tests as VS Code tasks (9513629)
  • ide: run or verify a recorded test three times, and choose another verified locator (e9a4436)
  • ide: complete locators after any page expression and inside expect( (bef8eb7)
  • ide: proxy settings, keybindings, a trace setting and a log command in VS Code (fe17837)
  • ide: build the editor extensions audit, and keep every --repeat-each result (41632b1)
  • app: open a path in VS Code through the Piwi extension, with no workspace root (5edc315)

Dashboard

  • ui: show each list as the user left it when they come back to a page (5b78dbc)

Performance Improvements

  • extension: lower each row's text once when a repeated container looks for its text (ca38b54)
  • extension: read the page's headings once per lint scan (9b823d5)
  • extension: read the pick results' copy facts once and redraw their ring on events (b532a53)
  • ide: answer an unchanged branch-failures request with 304, and match If-None-Match weakly (8415468)
  • ide: follow checkouts at once, and read less from the instance in the editor service (498c291)

Bug Fixes

Runs & dashboard

  • db: keep every --repeat-each result of a test in a run (a8ae723)
  • ui: record each tab's scroll and keep the user's choices over old links (a551819)
  • ui: stop restoring a page's scroll once the page scrolls it itself (f3f8312)

Editors

  • ide: a read after a run moved asks the instance again, and every caller gets its own copy (054f8c3)
  • ide: read a repeated run's total from its counts, which hold each repetition (b17e37e)
  • ide: reach an instance through the proxy the editor names, on every Node version (41a542b)
  • ide: read a recording's project options again when .env changes, with the project's Node (64cec3a)
  • ide: record into CommonJS specs, page-object fixtures and multi-line calls correctly (cd3be45)
  • ide: redraw only the coverage marks that changed, and follow renamed files (4841594)
  • ide: serve JetBrains local requests off the I/O thread, and record in test folders only (fc20b55)
  • ide: start the JetBrains editor service again when the IDE stops it while it starts (7027b98)

Piwi Picker connection

  • extension: prove the desktop app before sending its token as an instance key (47d43c0)
  • extension: keep the lines of this browser across Disconnect and reconnect (56b08c1)
  • extension: keep the set-aside lines until a reconnection is kept (fc6061c)

Piwi Picker recording & locators

  • extension: keep a recorded event when a pause or a title write lands beside it in Firefox (552d538)
  • extension: write a review title only to the recording it reviews, and never after discard (42201b0)
  • extension: keep the recording's evidence out of a replay started on its page (e1f26b3)
  • extension: refresh the bug bar's evidence once a screenshot is stored (8fb6e65)
  • extension: stop the recording bar's pulse under reduced motion (9b79bee)
  • extension: copy the Locators console's assertion from its match count and first match (7c52a50)
  • extension: suggest toHaveAccessibleName only for an element that has a name (37f9d02)
  • extension: share Add to session's name checks and storage errors across its forms (f85f134)
  • extension: keep the Playwright view's labels from overlapping (34c17a5)
  • extension: make the non-modal panels regions instead of dialogs (5e0bc4a)

Desktop app

  • desktop: pass Tauri's window handle to the windows 0.62 taskbar calls (f799d18)