browser tests run only by hand: the suites that launch Chrome / Chromium move to tests/browser/*.browser.ts (bun test, ci, ci:quick and the Forgejo workflows never pick them up; bun run test:browser runs them); the desktop boot check leaves bun run ci (it stays in desktop-release.ts mac at release time); CI=full is gone: Forgejo's ci runs the Rust steps when the push changed a Rust input (STOREBOUND_CI_BASE=HEAD~1), no Playwright install; CONTRIBUTING
This commit is contained in:
parent
4c7ff89950
commit
cd1e13c1e2
20 changed files with 116 additions and 133 deletions
|
|
@ -145,7 +145,7 @@ testers) and answers, in ONE batch at the start, only the facts no file proves (
|
|||
the window showed). `page.json` / `page.html` hold labels and structure only: no values, cookies or tokens; emails,
|
||||
phone numbers and the account area are replaced.
|
||||
- **Guard:** the watchdog in `fillSession` (`--step-timeout`, default 30 s; a heartbeat line a minute; 20 min without
|
||||
progress ends the run with exit 1), `cli/console/debug.ts`, `tests/console-flow.test.ts` (unknown-page fixture and a
|
||||
progress ends the run with exit 1), `cli/console/debug.ts`, `tests/browser/console-flow.browser.ts` (unknown-page fixture and a
|
||||
scan for waits without a deadline).
|
||||
|
||||
## 15. App Privacy data types not found in the real dialog
|
||||
|
|
@ -154,7 +154,7 @@ testers) and answers, in ONE batch at the start, only the facts no file proves (
|
|||
("NameIncluding first or last name"), and some labels differ from Apple's help page ("Purchases", "Other Data").
|
||||
- **Do:** nothing by hand: storebound matches the label as a prefix. If the console changes again, the watchdog
|
||||
(pitfall 14) writes a debug dump: re-run with `--debug-dump` and attach it.
|
||||
- **Guard:** `labelNames` and `TYPE_ALIASES` (`cli/lib/console-forms.ts`), `tests/console-flow.test.ts`.
|
||||
- **Guard:** `labelNames` and `TYPE_ALIASES` (`cli/lib/console-forms.ts`), `tests/browser/console-flow.browser.ts`.
|
||||
|
||||
## 16. "Still waiting for the sign-in" on a console that is signed in
|
||||
- **Symptom:** `console fill` (often with the copied Chrome cookies) prints only "still waiting for the sign-in"
|
||||
|
|
@ -167,7 +167,7 @@ testers) and answers, in ONE batch at the start, only the facts no file proves (
|
|||
without `--use-chrome-session` (pitfall 18). Anything else: re-run with `--debug-dump` (up to 3 dumps of the sign-in wait) and attach the
|
||||
folder after the owner looked at `screen.jpg`.
|
||||
- **Guard:** `signInReason` in `cli/console/fill.ts` (top-level URL, the main frame's password / email-entry form, a
|
||||
visible Apple sign-in frame; no other frame counts), the sign-in watchdog dump, `tests/console-fill.test.ts`.
|
||||
visible Apple sign-in frame; no other frame counts), the sign-in watchdog dump, `tests/browser/console-fill.browser.ts`.
|
||||
|
||||
## 17. App Privacy data types listed but never set up
|
||||
- **Symptom:** after the data types were saved, `console fill apple-app-privacy` stops on the App Privacy page with
|
||||
|
|
@ -178,7 +178,7 @@ testers) and answers, in ONE batch at the start, only the facts no file proves (
|
|||
the "?" help buttons or Publish) and fills that type's dialog step by step. A dialog step it does not know: it writes
|
||||
a debug dump, says `paused on "<type>"`, and goes on once the owner answered that step.
|
||||
- **Guard:** `setUpAllowed` (`cli/lib/console-forms.ts`), `setUpClick` / `setUpType` (`cli/console/fill.ts`),
|
||||
`tests/console-flow.test.ts` with `tests/fixtures/console/apple-app-privacy-setup.html`.
|
||||
`tests/browser/console-flow.browser.ts` with `tests/fixtures/console/apple-app-privacy-setup.html`.
|
||||
|
||||
## 18. Never copy Google session cookies: they are device-bound
|
||||
- **Symptom:** `console fill play-app-record` with the owner's copied Chrome cookies reached the Play account chooser
|
||||
|
|
@ -200,7 +200,7 @@ testers) and answers, in ONE batch at the start, only the facts no file proves (
|
|||
in their real Chrome.
|
||||
- **Guard:** `browserPlan` / `openConsoleBrowser` in `cli/console/session.ts` (no copy without the flag, the copy keeps
|
||||
only the form's own provider), Chrome started by storebound without `--enable-automation` and with
|
||||
`navigator.webdriver` false, `googleRejected`; `tests/console-session.test.ts`.
|
||||
`navigator.webdriver` false, `googleRejected`; `tests/browser/console-session.browser.ts`.
|
||||
- **Sources:** https://blog.google/security/protecting-cookies-with-device-bound-session-credentials/ ,
|
||||
https://developer.chrome.com/docs/web-platform/device-bound-session-credentials ,
|
||||
https://knowledge.workspace.google.com/admin/security/investigate-and-take-action-on-suspicious-session-cookies
|
||||
|
|
@ -515,7 +515,7 @@ that fails without the fix (see CONTRIBUTING.md).
|
|||
component state; clicking the field and typing works (verified 2026-10-13).
|
||||
- **Do:** type, don't set value: click the field, type the text key by key, read it back.
|
||||
- **Guard:** the `apple-app-record` plan (uiFacts, the fill step); `console fill` types every text field (`typeText`);
|
||||
`tests/console-flow.test.ts`.
|
||||
`tests/browser/console-flow.browser.ts`.
|
||||
|
||||
## 39. IARC page 1: Next does nothing until the Terms box is ticked
|
||||
- **Symptom:** on the content rating questionnaire's page 1 Next did nothing, and the agent waited mid-run for the
|
||||
|
|
@ -525,7 +525,7 @@ that fails without the fix (see CONTRIBUTING.md).
|
|||
box" with the exact place (Content ratings > Start questionnaire, page 1). Never tick it yourself; if it is still
|
||||
unticked, say so once and poll it, do not press Next again and again.
|
||||
- **Guard:** `ownerBatch` in `console plan play-content-rating` / `play-app-content` (printed first); `console fill`
|
||||
waits for the tick ("agreement needed on …"); `tests/console-play-plans.test.ts`, `tests/console-flow.test.ts`.
|
||||
waits for the tick ("agreement needed on …"); `tests/console-play-plans.test.ts`, `tests/browser/console-flow.browser.ts`.
|
||||
|
||||
## 40. Finding play.appId in a paginated app list
|
||||
- **Symptom:** finding a new app's Play Console app id took several steps: 10 apps per page, the new app not on page 1.
|
||||
|
|
@ -648,7 +648,7 @@ that fails without the fix (see CONTRIBUTING.md).
|
|||
resizes it. `shots check` fails a feature graphic whose device leaves the canvas (measured from the page's layout
|
||||
at render time, `devices` in report.json), and warns when a screenshot's front device runs off a side or the top.
|
||||
- **Guard:** `featureLayout`, `rotatedBox` (`cli/shots/lib.ts`), `deviceIssues` (`cli/shots/report.ts`),
|
||||
`tests/feature-fit.test.ts` (geometry, both templates rendered at 1024 x 500, a bleeding fixture).
|
||||
`tests/browser/feature-fit.browser.ts` (geometry, both templates rendered at 1024 x 500, a bleeding fixture).
|
||||
|
||||
## 56. "Live on Play" while Google was still reviewing, and 1.0 / 1.0.0 shown as two versions
|
||||
- **Do:** never call a Google Play production release live from the Developer API alone: a release reads `completed`
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue