storebound/tests
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
..
fixtures console fill apple-app-privacy: fit the Data Collection dialog to the real console 2026-10-12 07:17:15 +08:00
helpers tests: profile persistence runs in a real Chrome, in its own shard 2026-10-12 06:27:42 +08:00
adhoc.test.ts growth extras: prices ppp, ads apple, web, apple adhoc, play share, revenuecat, console fill (+ desktop button) 2026-10-12 00:14:00 +08:00
analytics.test.ts Analytics snapshots: storebound analytics setup | snapshot | compare, store-analytics skill 2026-10-10 23:28:10 +08:00
api.test.ts storebound api: every App Store Connect and Google Play operation 2026-10-11 23:37:09 +08:00
app-privacy.test.ts console fill: walk the whole form; the owner only reviews and presses the final button 2026-10-12 06:51:01 +08:00
apple-ads.test.ts growth extras: prices ppp, ads apple, web, apple adhoc, play share, revenuecat, console fill (+ desktop button) 2026-10-12 00:14:00 +08:00
apple-name.test.ts apple.name: the App Store name when the plain name is taken; console fill, apple listing, pull, check (30-char error, same-name hint), scan use it 2026-10-12 03:23:43 +08:00
apps.test.ts check: name the missing file and the fix instead of a raw ENOENT; clearer demo account message; hero shows the new output 2026-10-11 03:54:03 +08:00
aso-plus.test.ts aso: competitors, suggest and audit from official data; ASO card on the Growth tab 2026-10-12 04:09:34 +08:00
browser-resolve.test.ts browser: one launch resolver; console fill never reports a hidden error 2026-10-12 06:17:19 +08:00
build-fixtures.ts Signing, builds, uploads and an originality check 2026-10-11 23:42:48 +08:00
build-sign.test.ts Signing, builds, uploads and an originality check 2026-10-11 23:42:48 +08:00
capture-web.test.ts fast ci: task graph runner, sharded tests balanced by recorded durations, ci:quick (typecheck + related tests + scrub), Rust only when src-tauri / sidecar build changed, event waits instead of sleeps 2026-10-12 05:05:26 +08:00
ci-plan.test.ts ci:quick: browser suites only for nearby imports (full ci runs them always) 2026-10-12 05:08:23 +08:00
cli-help.test.ts shots check: ligatures no longer read as system-font glyphs (probe spans shaped as one run); --help on every command and group, unknown flags rejected before anything runs 2026-10-12 05:23:37 +08:00
console-app-id.test.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
console-fill.test.ts console fill play-app-record: read the real account chooser, match names loosely 2026-10-12 07:12:05 +08:00
console-flow.test.ts console fill apple-app-privacy: fit the Data Collection dialog to the real console 2026-10-12 07:17:15 +08:00
console-persist.test.ts tests: profile persistence runs in a real Chrome, in its own shard 2026-10-12 06:27:42 +08:00
console-session.test.ts browser tests: deterministic under load 2026-10-12 04:54:07 +08:00
desktop-complete.test.ts app privacy: one Apple purpose per Play purpose (advertising is Third-Party Advertising only; Developer's Advertising only from the owner), appPrivacy.types (owner answers per Apple type id: certain in console fill, proposed by scan without linked / tracking, compared by check with Info.plist and PrivacyInfo.xcprivacy) 2026-10-12 04:07:15 +08:00
desktop-d2.test.ts Sidecar leak check: skip a generic build home (/root in a CI container is a substring of the bun runtime itself); privacy-scan still checks every home 2026-10-11 05:38:41 +08:00
desktop-d3.test.ts storebound api: every App Store Connect and Google Play operation 2026-10-11 23:37:09 +08:00
desktop-dist.test.ts storebound desktop: open the desktop app (with the current app folder) or show the download for this system; --download saves it to ~/Downloads after checking SHA-256 and the minisign signature, never installs 2026-10-11 05:16:59 +08:00
desktop-real-reads.test.ts Real-account read check of the desktop tabs: analytics snapshot stops when every store failed, compare names why a store has no days (Growth shows it), listing screenshot count skips contact sheets; Growth chart as an index on one axis; recorded price answers round-trip the price sheet 2026-10-11 08:06:26 +08:00
desktop-release.test.ts Desktop release pipeline: privacy scan of every artifact, path-free builds, macOS universal app + DMG (Developer ID + notarization or an ad-hoc -unsigned preview) with self-tests of the exact artifacts, signed latest.json, Forgejo workflow for Linux and Windows, root-owned publish step for storebound.dev 2026-10-11 05:16:59 +08:00
fastlane.test.ts store-locales: verify App Store and Play codes against the official lists (2026-10-11), drop zu, aliases for the 2025 languages, tests 2026-10-11 07:37:18 +08:00
fixtures.ts Tests: gallery data and HTML, variant paths, contact sheet layout 2026-10-10 22:16:38 +08:00
flow.test.ts flows, listing translate, scan 2.2 + --originality, prices export with subscriptions, site sections 2026-10-12 01:24:21 +08:00
gallery.test.ts shots: glyph coverage check per language, automatic Noto fallbacks, check errors on fallback / system-font glyphs 2026-10-12 03:05:23 +08:00
glyph-ligatures.test.ts shots check: ligatures no longer read as system-font glyphs (probe spans shaped as one run); --help on every command and group, unknown flags rejected before anything runs 2026-10-12 05:23:37 +08:00
glyphs.test.ts shots: glyph coverage check per language, automatic Noto fallbacks, check errors on fallback / system-font glyphs 2026-10-12 03:05:23 +08:00
growth-config.test.ts growth extras: MCP safe tools, README and CHANGELOG, socialMedia age rating defaults, regenerated adapters and API coverage 2026-10-12 00:19:32 +08:00
health.test.ts Guarded read-only run of the Play POST read paths: errorIssues:search in UTC, issues failure keeps the vitals, read-only listing / images dry runs 2026-10-11 08:41:55 +08:00
idempotency.test.ts idempotency: apple listing findOrCreate / createOnce, play listing re-plan in the edit, data-safety hash, twice-run tests for the last open rows 2026-10-12 04:24:45 +08:00
listing-plan.test.ts apple listing, play listing, apple appinfo: the dry run prints a real plan (version decision, old -> new per field, draft locales skipped); the real run asks and applies exactly it 2026-10-12 03:29:38 +08:00
listing-translate.test.ts listing check: App Store keywords shown and limited in UTF-8 bytes (96/100 B), other fields in characters 2026-10-12 04:10:28 +08:00
live-reads-2.test.ts tests: all-zero placeholder profile uuid (scrub) 2026-10-12 01:28:32 +08:00
local-fonts.test.ts shots fonts: local font files (title / body / fallback) with cmap coverage, served in place, hash in fonts.json, license note 2026-10-12 04:15:19 +08:00
mcp.test.ts MCP 2026-07-28: stateless revision with server/discover and per-request _meta, still 2025-11-25 compatible 2026-10-10 23:28:10 +08:00
no-handmade-svg.test.ts growth extras: prices ppp, ads apple, web, apple adhoc, play share, revenuecat, console fill (+ desktop button) 2026-10-12 00:14:00 +08:00
originality.test.ts flows, listing translate, scan 2.2 + --originality, prices export with subscriptions, site sections 2026-10-12 01:24:21 +08:00
pitfalls.test.ts pitfalls: apple listing dry run prints a plan now, its allow entry removed 2026-10-12 03:42:45 +08:00
play-post-reads.test.ts play products: price, region and activation changes of existing products ask first (diff, terminal confirmation or --yes; refused without a terminal and under serve unless a desktop owner action confirmed); new products and listing text unchanged; store-iap-setup skill and MCP description; tests 2026-10-11 08:47:28 +08:00
portfolio.test.ts CLI for desktop D2: doctor, inspect --icon / --listings, reviews drafts / approve, init --dry from embedded templates, iOS phased release share, playwright as optional peer (sidecar bundles playwright-core) 2026-10-11 03:34:45 +08:00
ppo.test.ts Product Page Optimization through the API (apple ppo) and an optional 6.3" iPhone size key 2026-10-10 23:28:10 +08:00
ppp.test.ts growth extras: prices ppp, ads apple, web, apple adhoc, play share, revenuecat, console fill (+ desktop button) 2026-10-12 00:14:00 +08:00
prices.test.ts flows, listing translate, scan 2.2 + --originality, prices export with subscriptions, site sections 2026-10-12 01:24:21 +08:00
privacy-scan.test.ts privacy-scan: allow GTK 3's upstream icon export paths (exact prefixes) that linuxdeploy bundles into the AppImage 2026-10-11 06:04:44 +08:00
pure.test.ts Rename to storebound (plugin, CLI, config file, credentials folder, repo) 2026-10-10 20:35:26 +08:00
release-train.test.ts CLI workspace for many apps and studios, credential profiles, release trains (release status / plan) 2026-10-11 23:35:45 +08:00
revenuecat.test.ts growth extras: prices ppp, ads apple, web, apple adhoc, play share, revenuecat, console fill (+ desktop button) 2026-10-12 00:14:00 +08:00
reviews.test.ts Review replies: storebound reviews list | draft | send, review-replies skill 2026-10-10 23:28:10 +08:00
scan.test.ts scan: TODO / TBD / FIXME / XXX count as placeholder markers only in capitals ('todo' is a real keyword for to-do apps) 2026-10-12 05:06:23 +08:00
serve.test.ts fast ci: task graph runner, sharded tests balanced by recorded durations, ci:quick (typecheck + related tests + scrub), Rust only when src-tauri / sidecar build changed, event waits instead of sleeps 2026-10-12 05:05:26 +08:00
shots.test.ts Tests: capture config, simctl / adb argv builders, frame checks 2026-10-10 21:30:40 +08:00
site-overflow.test.ts fast ci: task graph runner, sharded tests balanced by recorded durations, ci:quick (typecheck + related tests + scrub), Rust only when src-tauri / sidecar build changed, event waits instead of sleeps 2026-10-12 05:05:26 +08:00
specs.test.ts shots: glyph coverage check per language, automatic Noto fallbacks, check errors on fallback / system-font glyphs 2026-10-12 03:05:23 +08:00
store-apps.test.ts apps / health / catalog / validate: fixes from a read-only run against live store accounts 2026-10-11 04:50:26 +08:00
store-ops-apple.test.ts idempotency: WIP 2026-10-12 04:00:58 +08:00
store-ops-reports.test.ts Merge store-ops: TestFlight wait / expire, IAP review submissions, pulls, offers, CPP, events, reports, triage, ASO rank, ads scan 2026-10-12 00:07:26 +08:00
store-ops-text.test.ts apple.name: the App Store name when the plain name is taken; console fill, apple listing, pull, check (30-char error, same-name hint), scan use it 2026-10-12 03:23:43 +08:00
store-real-shapes.test.ts apps / health / catalog / validate: fixes from a read-only run against live store accounts 2026-10-11 04:50:26 +08:00
teaser.test.ts teaser v6: 55.5 s, v5 kept, its desktop part grown to four scenes 2026-10-12 02:32:53 +08:00
testflight.test.ts TestFlight through the App Store Connect API: apple testflight status | groups | testers | what-to-test | info | distribute 2026-10-10 23:28:10 +08:00
tools-path.test.ts tools: also look in the Android SDK folder Android Studio installs and in Homebrew, for apps started without a shell PATH 2026-10-11 09:51:22 +08:00
tools.test.ts privacy-scan: AppImage squashfs found at the end of the ELF runtime (the runtime contains the magic too); a generic home (/root) is not a term. tools test: 30s timeout (detectTools runs every version command) 2026-10-11 05:59:40 +08:00
video.test.ts Tests: clip planning, ffmpeg argv, time codes, probe checks, recording argv, preview sets, promo video 2026-10-10 22:22:52 +08:00
wave1.test.ts apple iap-review: size check before upload, delivery state read back after (FAILED shown with Apple's reason), dry run names why it would upload, MISSING_METADATA explained per part; check flags non-screenshot sizes offline 2026-10-12 03:24:41 +08:00
web.test.ts growth extras: prices ppp, ads apple, web, apple adhoc, play share, revenuecat, console fill (+ desktop button) 2026-10-12 00:14:00 +08:00
workspace.test.ts console fill: sign-in detected by URL, frame and text; keeps watching after the fallback; session kept across relaunches; one login across Play developer accounts and App Store Connect teams 2026-10-12 02:54:48 +08:00