feat(p7-09): JetStream unit tests — versioning (12), dirstore (12), batching/errors deferred (66)

Port session P7-09: add tests from jetstream_versioning_test.go (T:1791–1808),
dirstore_test.go (T:285–296), jetstream_batching_test.go (T:716–744),
jetstream_errors_test.go (T:1381–1384), and accounts_test.go (T:80–110).

- JetStreamVersioningTests: 12 active unit tests + 6 deferred (server-required)
- DirectoryStoreTests: 12 filesystem tests using fake JWTs (no NKeys dependency)
- JetStreamBatchingTests: 29 deferred stubs (all require running JetStream cluster)
- JetStreamErrorsTests: 4 deferred stubs (NewJS* factories not yet ported)
- accounts_test.go T:80–110: 31 deferred (all use RunServerWithConfig)

Fix DirJwtStore.cs expiration bugs:
  - Use DateTimeOffset.UtcNow.UtcTicks (not Unix-relative ticks) for expiry comparison
  - Replace in-place JwtItem mutation with new-object replacement so DrainStale
    can detect stale heap entries via ReferenceEquals check

Add JetStreamVersioning.cs methods: SetStaticStreamMetadata,
SetDynamicStreamMetadata, CopyStreamMetadata, SetStaticConsumerMetadata,
SetDynamicConsumerMetadata, SetDynamicConsumerInfoMetadata, CopyConsumerMetadata.

Tests: 725 pass, 53 skipped/deferred, 0 failures.
DB: +24 complete, +66 deferred.
This commit is contained in:
Joseph Doherty
2026-02-26 20:02:00 -05:00
parent 6e90eea736
commit f0faaffe69
9 changed files with 1627 additions and 18 deletions

View File

@@ -1,6 +1,6 @@
# NATS .NET Porting Status Report
Generated: 2026-02-27 00:40:06 UTC
Generated: 2026-02-27 01:02:01 UTC
## Modules (12 total)
@@ -21,10 +21,10 @@ Generated: 2026-02-27 00:40:06 UTC
| Status | Count |
|--------|-------|
| complete | 252 |
| deferred | 484 |
| complete | 276 |
| deferred | 554 |
| n_a | 187 |
| not_started | 2220 |
| not_started | 2126 |
| verified | 114 |
## Library Mappings (36 total)
@@ -36,4 +36,4 @@ Generated: 2026-02-27 00:40:06 UTC
## Overall Progress
**4237/6942 items complete (61.0%)**
**4261/6942 items complete (61.4%)**