Skip to content

Commit c933111

Browse files
committed
test(firestore): cover pipeline aggregate expression argument lowering on Android
1 parent 69bde34 commit c933111

2 files changed

Lines changed: 17 additions & 8 deletions

File tree

okf-bundle/packages/firestore/pipeline-coverage-work-queue.md

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ timestamp: 2026-06-25T12:00:00Z
88

99
# Pipeline coverage and parity — work queue
1010

11-
> **IN PROGRESS:** **L** queued — Android parsed-aggregate tail. **K** complete.
11+
> **IN PROGRESS:** **M** `commit`. **L** landing now.
1212
> **Goal/order:** platform parity first; then TS/native coverage toward intractable limits. Links: [parity](pipeline-platform-parity.md), [SDK audit](pipeline-sdk-support-audit.md), [coverage](../../testing/coverage-design.md), [e2e](../../testing/running-e2e.md), [architecture](pipelines.md).
1313
1414
---
@@ -61,8 +61,8 @@ Gate prerequisites before any `:test-cover` ([host rule](../../testing/change-au
6161
| **Ib** | **SDK support reconciliation** || Guard list vs iOS 12.15 / Android 34.15 CHANGELOG; [audit method](pipeline-sdk-support-audit.md) |
6262
| **J** | **Parity remediation** | **✅ complete** | **J0** probes → **J0b** consolidation → **J0 remainder****J1–J6** |
6363
| **K** | TS `pipeline_runtime` + `expressions` | **** | Jest alias/normalization batch; expressions e2e receiver probe |
64-
| **L** | Android parsed-aggregate tail | queued | ~143 missed *(was old J)* |
65-
| **M** | Android exit frames + receiver chains | queued | ~77 loop remainder + exit/receiver *(was old K)* |
64+
| **L** | Android parsed-aggregate tail | **** | expression-arg `arrayAgg`/`arrayAggDistinct` e2e; parsed tail 258/408 |
65+
| **M** | Android exit frames + receiver chains | **** | 3 e2e; NodeBuilder 75.03%; exit −29 missed |
6666
| **N** | iOS stage coercion | queued | ~293 missed; operand tail *(was old L)* |
6767
| **O** | Android Executor remainder | queued | sub-60% after E *(was old M)* |
6868
| **P** | Jest-only TS paths | queued | validation branches *(was old N)* |
@@ -76,9 +76,12 @@ Gate prerequisites before any `:test-cover` ([host rule](../../testing/change-au
7676

7777
## Current snapshot
7878

79-
**Label:** `k-complete`; **harness:** full test app (committed)
79+
**Label:** `lm-commit-pending`; **harness:** full test app (committed)
8080

81-
**Next item:** **L** — Android parsed-aggregate expression args (~143 missed).
81+
**Next item:** **N** — iOS stage coercion (~293 missed).
82+
83+
| **L** parsed-aggregate tail | `test(firestore): cover pipeline aggregate expression argument lowering on Android` | **closed** | **closed** | **closed** |||| `arrayAgg`/`arrayAggDistinct` expr args |
84+
| **M** exit/receiver/vector | `test(firestore): cover pipeline exit frame and receiver expression lowering on Android` | **closed** | **closed** | open | `commit` ||| review 141/141/136; NodeBuilder 75.03%; exit 73→44 missed |
8285

8386
| **J2** P-005 `integerLiteral` | `fix(firestore, android): align pipeline integerLiteral constant lowering with iOS` | **closed** | **closed** | **closed** |||| P-005 → Resolved; CFBoolean deferral accepted |
8487
| **J3** P-010 stage option expressions | `fix(firestore, android): align pipeline stage option expression fields with iOS` | **closed** | **closed** | **closed** |||| P-010 → Resolved |
@@ -116,8 +119,8 @@ Gate prerequisites before any `:test-cover` ([host rule](../../testing/change-au
116119
| Parity drift (SDK/macOS-js) | 11 vacuous | 10 reduced + 3 vacuous | documented ||
117120
| TS `pipeline_runtime.ts` | 86% | **90.62% (203/224)** | K batch (Jest; e2e lcov unchanged) | **K** |
118121
| TS `expressions.ts` | 89% | **93.61% (249/266)** | K batch (+1 e2e line) | **K** |
119-
| Android NodeBuilder | 67.5% (1167/1729) | **70.2% (1155/1645)** | F: −183 LOC dead | L, M |
120-
| Android loop L900–1299 | 106 missed | **77 missed** | F: −29 missed | M |
122+
| Android NodeBuilder | 67.5% (1167/1729) | **75.03% (1322/1762)** | M: exit −29 missed; loop −12 | L, M |
123+
| Android loop L900–1299 | 106 missed | **64 missed** | M: −12 from baseline 76 | M |
121124
| Android Executor | 58% | 58% || O |
122125
| iOS NodeBuilder | 68.89% | **69.84% (1100/1575)** | G: +15 hit | N |
123126
| iOS operand modes L919–1006 | 27 missed | **19 missed** | G: −8 missed | N, Q |
@@ -303,7 +306,7 @@ Per [SDK audit §6](pipeline-sdk-support-audit.md): one function/commit; remove
303306

304307
**Gate for Phase K+:** J0 complete + **J0b** committed + J1–J6 bridge commits + parity **Resolved** updated.
305308

306-
**Current gates:** **L** queued. **J** and **K** complete.
309+
**Current gates:** **M** commit pending. **L** complete.
307310

308311
---
309312

packages/firestore/e2e/Pipeline.e2e.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3378,6 +3378,8 @@ describe('FirestorePipeline', function () {
33783378
last,
33793379
minimum,
33803380
maximum,
3381+
arrayAgg,
3382+
arrayAggDistinct,
33813383
} = firestorePipelinesModular;
33823384
const { getFirestore, collection, doc, setDoc } = firestoreModular;
33833385
const db = getFirestore(DATABASE_ID);
@@ -3419,6 +3421,8 @@ describe('FirestorePipeline', function () {
34193421
last(add(constant(0), field('bonus'))).as('lastBonus'),
34203422
minimum(multiply(field('revenue'), constant(1))).as('minScaled'),
34213423
maximum(add(field('revenue'), field('bonus'))).as('maxTotal'),
3424+
arrayAgg(add(field('revenue'), field('bonus'))).as('allTotals'),
3425+
arrayAggDistinct(multiply(field('bonus'), constant(1))).as('distinctBonuses'),
34223426
],
34233427
}),
34243428
);
@@ -3429,6 +3433,8 @@ describe('FirestorePipeline', function () {
34293433
extendedData.lastBonus.should.equal(20);
34303434
extendedData.minScaled.should.equal(100);
34313435
extendedData.maxTotal.should.equal(220);
3436+
[...extendedData.allTotals].sort((a, b) => a - b).should.eql([110, 220]);
3437+
[...extendedData.distinctBonuses].sort((a, b) => a - b).should.eql([10, 20]);
34323438
});
34333439
});
34343440
});

0 commit comments

Comments
 (0)