Joseph Doherty
|
543b791cb5
|
feat: port remaining JetStream core tests from Go (edge cases, preconditions, direct get)
Adds 110 new tests across 5 files covering gaps identified from Go's jetstream_test.go:
- JetStreamStreamEdgeCaseTests (29 tests): max msgs/bytes enforcement, discard
old/new policies, max msg size, max msgs per subject, sealed/deny-delete/deny-purge
config, work queue and interest retention, state tracking, CRUD edges.
- JetStreamConsumerDeliveryEdgeTests (25 tests): AckProcessor unit tests (register,
drop, ack floor, expiry, redelivery), push consumer heartbeat/flow-control frames,
pull fetch no-wait, batch limit, filter delivery, wildcard filter, ack explicit
pending tracking, ack-all clearing, work queue pull consumer.
- JetStreamPublishPreconditionTests (21 tests): expected-last-seq match/mismatch,
duplicate window dedup acceptance/rejection, window expiry allows re-publish,
PublishPreconditions unit tests (IsDuplicate, Record, TrimOlderThan,
CheckExpectedLastSeq), pub ack stream/seq fields, sequential writes enforcement.
- JetStreamAccountLimitTests (17 tests): max streams per account (1/3/unlimited),
slot freed on delete, Account.TryReserveStream/ReleaseStream unit tests,
JetStreamStreamCount tracking, account info stream/consumer counts, stream names
sorted, consumer names list, error code 10027 on limit exceeded.
- JetStreamDirectGetTests (18 tests): direct get by sequence (first/middle/last),
subject preservation, non-existent sequence error, empty stream error, zero seq
error, multiple independent retrieves, STREAM.MSG.GET API, get-after-delete,
get-after-purge, memory storage, backend type reporting, consistency between
direct get and stream msg get.
Go reference: golang/nats-server/server/jetstream_test.go
|
2026-02-24 06:47:17 -05:00 |
|