Surfaced by an adversarial review of #274 (numeric-binning e2e repair). These are minor, non-blocking e2e test-quality follow-ups — none block #274, but each weakens regression coverage or risks a future flake if left. Filing for durable tracking since no existing issue/work covers them.
Note: the separate product-side _handleQueryApply stacked-isolation index-mapping bug that the #274 tests deliberately route around (via Reset-All) is already being addressed in #259 — so it is intentionally not included here.
1. figure-editor.spec.ts — dot-size coverage floor is flake-prone and a weak guard
Test: Dot size slider scales the rendered point coverage.
expect(at5x.colored).toBeGreaterThan(at1x.colored * 1.2) sits only ~7% above the measured working ratio (~1.29×, per commit 4b5cf91). A slightly denser demo pushes the real value toward/below 1.2× (flake), while a partially-wired slider would still clear 1.2× (weak regression guard).
Suggested fix: assert a monotonic ladder across 1×/2×/5× (at2x > at1x and at5x > at2x) so a constant/clamped slider is caught structurally, independent of fixture density — and/or sample a sparser region so a higher floor stays safe.
2. numeric-binning.spec.ts — tooltip range check is near-tautological
Test: numeric tooltip shows the raw value within the current bin range after rebinning.
It hovers an arbitrary point and asserts the raw value ∈ [globalMin − tol, globalMax + tol]. Since a data point is by construction within its data's min/max, the assertion passes even if rebinning produced wrong bins.
Suggested fix: hover a point known to be interior (skip points within the tolerance of global min/max) and assert it lands in its specific bin, or assert the bins partition [min, max] with no gaps.
3. url-view-state.spec.ts — runtime demo-discovery can silently no-op
beforeAll derives targetAnnotation / secondAnnotation / projection equivalents with collapsing ?? default fallbacks and no distinctness guard. If the demo bundle is ever swapped to one with a single annotation/projection, several URL canonicalization tests degrade to no-ops (and one .not.toContain(demoDefaultAnnotation) assertion would self-contradict). Safe for the current bundle; latent for the future.
Suggested fix: add fail-loud invariants at the end of beforeAll (expect(demoAnnotations.length).toBeGreaterThanOrEqual(2), expect(targetAnnotation).not.toBe(demoDefaultAnnotation), and the projection equivalents) — or test.skip with an explicit reason for a degenerate demo.
Context: surfaced reviewing #274 (commit c9f64af).
Surfaced by an adversarial review of #274 (numeric-binning e2e repair). These are minor, non-blocking e2e test-quality follow-ups — none block #274, but each weakens regression coverage or risks a future flake if left. Filing for durable tracking since no existing issue/work covers them.
1.
figure-editor.spec.ts— dot-size coverage floor is flake-prone and a weak guardTest:
Dot size slider scales the rendered point coverage.expect(at5x.colored).toBeGreaterThan(at1x.colored * 1.2)sits only ~7% above the measured working ratio (~1.29×, per commit4b5cf91). A slightly denser demo pushes the real value toward/below 1.2× (flake), while a partially-wired slider would still clear 1.2× (weak regression guard).Suggested fix: assert a monotonic ladder across 1×/2×/5× (
at2x > at1xandat5x > at2x) so a constant/clamped slider is caught structurally, independent of fixture density — and/or sample a sparser region so a higher floor stays safe.2.
numeric-binning.spec.ts— tooltip range check is near-tautologicalTest:
numeric tooltip shows the raw value within the current bin range after rebinning.It hovers an arbitrary point and asserts the raw value ∈
[globalMin − tol, globalMax + tol]. Since a data point is by construction within its data's min/max, the assertion passes even if rebinning produced wrong bins.Suggested fix: hover a point known to be interior (skip points within the tolerance of global min/max) and assert it lands in its specific bin, or assert the bins partition
[min, max]with no gaps.3.
url-view-state.spec.ts— runtime demo-discovery can silently no-opbeforeAllderivestargetAnnotation/secondAnnotation/ projection equivalents with collapsing?? defaultfallbacks and no distinctness guard. If the demo bundle is ever swapped to one with a single annotation/projection, several URL canonicalization tests degrade to no-ops (and one.not.toContain(demoDefaultAnnotation)assertion would self-contradict). Safe for the current bundle; latent for the future.Suggested fix: add fail-loud invariants at the end of
beforeAll(expect(demoAnnotations.length).toBeGreaterThanOrEqual(2),expect(targetAnnotation).not.toBe(demoDefaultAnnotation), and the projection equivalents) — ortest.skipwith an explicit reason for a degenerate demo.Context: surfaced reviewing #274 (commit
c9f64af).