Skip to content

Commit 0adf550

Browse files
committed
test(docs): android e2e refinement, upstream API review refinement
1 parent 965112b commit 0adf550

3 files changed

Lines changed: 15 additions & 0 deletions

File tree

okf-bundle/ci-workflows/android.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,5 +74,6 @@ Under load, Jet may run only a small prefix before mocha-remote desync, often af
7474
| Empty Jacoco XML (~235 bytes) | No `.ec` pulled — check post-e2e logs |
7575
| `adb reverse --remove` in Detox logs | Expected on 1006; should be warn-only after Detox patch |
7676
| Detox red, tests green in log | Pre-patch: teardown adb error; re-run or check patch applied |
77+
| Emulator offline / hung / duplicate instance | Warm quickboot snapshot restore; `tests/.detoxrc.js` sets `bootArgs: '-no-snapshot-load -no-snapshot-save'` for cold boot when Detox launches TestingAVD |
7778
| `codecov/project/android-native` fail | Jacoco XML not uploaded — check post-e2e logs and Codecov Uploads tab for `android-native` flag |
7879
| FIS 503 / `Too many server requests` / RC cascade | Live cloud quota (shared project) — not Android-specific; see [cloud API quota triage](../testing/firebase-testing-project.md#ci-triage-cloud-api-quota-pressure) |

okf-bundle/testing/change-authoring-workflow.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -146,6 +146,17 @@ flowchart TD
146146

147147
Step detail: [running e2e § unit-focused iteration loop](running-e2e.md#unit-focused-tier-iteration-loop).
148148

149+
<a id="platform-sdk-bridge-contracts"></a>
150+
151+
### Platform SDK bridge contracts (blocking)
152+
153+
Before changing native bridge code that calls a **platform SDK** (Firebase Android/iOS, OS APIs, vendor SDKs, etc.):
154+
155+
1. **Read each platform's official API signature and docs independently** — do not assume Android, iOS, and Web behave the same because the RNFB bridge presents a unified JavaScript surface.
156+
2. **Verify null vs empty string** — many SDKs treat absent values (`null`/`nil`) and empty strings (`""`) differently; map bridge fields to the SDK parameter the docs specify for "absent" values.
157+
3. **Do not apply defensive parity** — fixing platform A does not justify the same change on platform B without checking B's contract (e.g. `@Nullable` vs `nonnull`, optional vs required).
158+
4. **Record evidence** — link or cite the reference URL / header signature in the work queue note or triage report when the fix is native-only on one platform.
159+
149160
<a id="e2e-diagnosis-escalation"></a>
150161

151162
### E2e diagnosis escalation

tests/.detoxrc.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,9 @@ module.exports = {
6262
device: {
6363
avdName: 'TestingAVD',
6464
},
65+
// Cold boot: do not load/save AVD snapshots (warm quickboot is unreliable locally).
66+
bootArgs: '-no-snapshot-load -no-snapshot-save',
67+
readonly: true,
6568
},
6669
},
6770
configurations: {

0 commit comments

Comments
 (0)