@mittwald/flow-react-components 1.3.0-next.12 → 1.3.0-next.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/AGENTS.md CHANGED
@@ -310,6 +310,24 @@ compiles against. A bare `vitest run` skips it and renders against whatever
310
310
  is simply absent, and CSS drops every declaration referencing it without a
311
311
  warning (#3194).
312
312
 
313
+ Three traps cost time in every new browser test:
314
+
315
+ - **Click the label, not the control.** `Checkbox`, `Radio`, `Switch` and
316
+ `Rating` stack their icons on top of a visually hidden input, so playwright
317
+ refuses the input with `<svg …> intercepts pointer events`. Query the control
318
+ by role for assertions and click its label text
319
+ (`page.getByText(name, { exact: true })`).
320
+ - **Hover needs the pointer modality first.** react-aria only counts a hover as
321
+ a hover while `getInteractionModality() === "pointer"`, and a freshly loaded
322
+ page has no modality at all — so `Tooltip` and everything else that opens on
323
+ hover stays closed no matter how long the test waits. Press something neutral
324
+ with the mouse once before hovering.
325
+ - **`await render(...)` before any bare DOM query.** A locator assertion polls
326
+ and waits the first render out; a `document.querySelector` right after
327
+ `render()` runs before React has committed and reads `null`. That turns an
328
+ assertion that something is _absent_ into a silent pass, so give any helper
329
+ that queries the DOM directly a guard that throws when its element is missing.
330
+
313
331
  ## i18n & a11y
314
332
 
315
333
  - Component-internal UI text lives in colocated `locales/de-DE.locale.json`