Skip to content

[TEST] e2e assertion-quality follow-ups from #274 review #276

Description

@jcoludar

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).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions