Skip to content

test(integration): no cross-runtime coverage for health-check withdrawal and recovery #1480

Description

@dhyansraj

The Python health check ships with integration coverage —
tests/integration/suites/uc02_agent_lifecycle/tc20_health_check_ttl_refresh,
tc21_health_check_lifespan_ready_gate, and the py-health-gate-agent /
py-health-recovery-agent artifacts. TypeScript (#1476) and Java (#1474) ship
none.

Everything currently asserted for TS is either a unit test with a stubbed
publish (health-check.spec.ts) or a Rust unit test that a command was
enqueued (napi.rs). Nothing exercises the chain the feature exists for:

healthCheck -> napi updateHealth -> heartbeat suppression -> registry
withdrawal -> consumer failover -> recovery via the 410 Gone re-register path

That chain was verified by hand for all three runtimes, but a manual E2E run is
not a regression guard.

To discuss before implementing

  • Scope. Mirror tc20/tc21 for TypeScript only, or generalize the
    existing Python cases into a runtime-parameterized suite covering all three?
    The latter is more work but the three runtimes are meant to be behaviourally
    identical here, and divergence is exactly what we keep finding.
  • Artifacts. New TS/Java agent images, or extend existing ones with an
    env-toggled failing check? Python used dedicated agents.
  • Timing. These are slow tests — the withdrawal depends on the 20s registry
    staleness window, and recovery on the re-register path. Bounding them without
    fixed sleeps matters (see test(meshjob): gate tc16 on real job status instead of a fixed 8s sleep #1459).
  • Release. Does 3.5.2 wait for this, or does it ship on the manual
    verification with the suite landing after?

Related: #1474, #1476.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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