storebound/cli/console
CRT 59150c1186 console fill apple-app-privacy: fit the Data Collection dialog to the real console
A real run (sanitized debug dump) showed why the walk stopped after Next:
the data types step is the same "Data Collection" dialog (URL unchanged),
and each checkbox's accessible name is its label run together with its
help text ("NameIncluding first or last name"). Some labels also differ
from Apple's help page ("Purchases", "Other Data").

- labelNames: the exact name, then the label as a prefix that ends where
  the help text starts (no lowercase letter follows), so "Name" never
  matches "Phone Number...", "Head" never "Health...", "Contact" never
  "Contacts...". Used for the data types and the purposes.
  TYPE_ALIASES maps Purchase History / Other Data Types to the console's
  labels.
- Dialog per step: a section's dialog is also found as the one visible
  dialog with a heading of that name.
- Every click and check is bounded (ACTION_MS, 10 s; the scan test now
  also rejects clicks without a timeout).
- The flow fixture mirrors the real dialog's structure (dialog/h2 title,
  group h3s, input name = Apple's enum, <label> with label + help <p>s,
  Save disabled until a type is ticked); no data from the dump. A test
  checks every Apple type matches exactly one real-style checkbox.
- Pitfall 15.

Publish is still never clicked; unknown steps still get the watchdog dump.
2026-10-12 07:17:15 +08:00
..
accounts.ts console fill apple-app-privacy: fit the Data Collection dialog to the real console 2026-10-12 07:17:15 +08:00
app-id.ts console fill: one app shown twice is one app; App Privacy opens by app id via the API 2026-10-12 06:32:21 +08:00
debug.ts console fill: no silent waits; an unknown page gets a debug dump and a bounded stop 2026-10-12 07:08:10 +08:00
fill.ts console fill apple-app-privacy: fit the Data Collection dialog to the real console 2026-10-12 07:17:15 +08:00
session.ts browser: one launch resolver; console fill never reports a hidden error 2026-10-12 06:17:19 +08:00