CoordinatorServiceTest

80

tests

0

failures

0

ignored

0.224s

duration

100%

successful

Tests

Test Duration Result
additional group create under managed prefix does not reject existing coordinator shard keys() 0.001s passed
admin mutations are blocked while metadata sync is in progress() 0.001s passed
assignment first member gets readable shards() 0.001s passed
assignment waits for previous owner revoke() 0.001s passed
coordination version is accepted only inside module support range() 0.001s passed
coordinator tick expires silent members without waiting for another heartbeat() 0.001s passed
create stream validates invalid stream prefix before storing metadata() 0s passed
delete group rejects live members unless forced() 0.001s passed
delete group removes inactive metadata() 0s passed
duplicate terminal revoke report after release does not fence member() 0.002s passed
expired member leave heartbeat stays fenced() 0.002s passed
failover resumes pending revoke() 0.002s passed
first group create rejects pre-existing Redis stream prefix keys() 0.001s passed
grafana group rows aggregate produced and consumed rates() 0.003s passed
grafana message search finds a record id across every shard() 0.002s passed
grafana messages can jump to the last page across all shards() 0.002s passed
grafana messages can jump to the last page for a single shard() 0.004s passed
grafana messages can page backward through a single shard more than once() 0.001s passed
grafana offset cache is not invalidated by heartbeat metadata changes() 0.001s passed
grafana offset cache reuses shard reads across overview panels() 0.002s passed
grafana option APIs expose current sharded stream selections from metadata() 0.001s passed
grafana overview scans multiple groups in parallel() 0.029s passed
grafana shard offset reads can run in parallel() 0.053s passed
grafana shard rows can scan all groups for overview dashboards() 0.003s passed
grafana shard rows expose produced and consumed rates after repeated observations() 0.018s passed
grafana shard rows expose target owners separately from acknowledged current owners() 0.001s passed
group creation provisions initial shard plan() 0s passed
group rejects duplicate create() 0.001s passed
health degrades when redis is required and unavailable() 0.014s passed
health does not wait for a slow redis ping beyond configured timeout() 0.023s passed
health refreshes redis status asynchronously and reuses cache within configured ttl() 0.002s passed
health skips redis ping when redis features are disabled() 0.001s passed
heartbeat accepts previously granted ownership after target changes before ack() 0s passed
heartbeat fences member that reports pending shard ownership before revoke completes() 0s passed
heartbeat fences member that reports shard owned by another active member() 0.003s passed
heartbeat fences stale member epoch() 0s passed
heartbeat rejects active member epoch reset() 0.001s passed
heartbeat rejects client advanced member epoch() 0.001s passed
heartbeat rejects epoch reset after ownership was acknowledged even when report is empty() 0.001s passed
heartbeat rejects member id mismatch() 0.001s passed
heartbeat rejects unknown member leave() 0s passed
heartbeat rejects unsupported negative member epoch() 0s passed
heartbeat returns unknown member for missing group() 0s passed
heartbeat with higher metadata version requests sync to current redis metadata() 0.001s passed
higher metadata version does not bypass fenced member state() 0.003s passed
initial join heartbeat replay returns current assignment without changing epochs() 0.001s passed
logical members receive even shard assignments() 0.001s passed
member split join advances assignment epochs() 0.003s passed
membership expires owner and reassigns shards() 0s passed
membership fences expired owner stale epoch() 0s passed
membership ignores stale ownership on rejoin() 0s passed
membership rejoin restores expired member() 0s passed
membership rejoin restores gracefully left member() 0.001s passed
metadata sync does not expose new target shards as immediately assigned() 0.001s passed
metadata sync does not wait for empty leaving members() 0.001s passed
metadata sync ignores stale revoke reports from discarded higher version() 0.003s passed
metadata sync serializes concurrent stale revoke reports from multiple members() 0.001s passed
metadata sync waits in revoke pending until draining member releases and peers acknowledge() 0.001s passed
migration rollback rejects unknown id() 0s passed
migration rollback restores previous version() 0.001s passed
migration scale lets live consumers revoke old assignments without fencing() 0.003s passed
migration scale updates shard count() 0.001s passed
monitoring current assignments ignore expired members() 0.002s passed
monitoring live owner rows exclude expired members with stale current assignments() 0.001s passed
monitoring read does not acquire critical section or write refreshed state() 0.001s passed
new logical members rebalance shards by member count() 0.001s passed
producer routing returns shard routing metadata() 0.001s passed
rebalance timeout fences stuck owner() 0.002s passed
rebalance timeout keeps timely owner active() 0.001s passed
scale in migration completes after removed shards are drained() 0.001s passed
scale in waits for every Redis consumer group on removed shards to drain() 0.001s passed
scale provisions target shard plan after preparing migration state is committed() 0s passed
scale rejects negative target shard count() 0s passed
scale to zero drains and removes every shard() 0.003s passed
scale to zero waits when Redis cannot compute removed shard lag() 0.002s passed
steady heartbeat replay does not bump metadata or assignment epochs() 0s passed
stream scale to zero updates every consumer group routing metadata() 0.001s passed
stream scale updates every consumer group and assignments arrive on heartbeat() 0.001s passed
terminal members are pruned after stale member retention() 0.001s passed
unknown member can rejoin with zero epoch and receive assignment() 0.001s passed