fix: correct MaxBytes enforcement and consumer start sequence after purge
StreamManager.Capture now accounts for full message size (subject + payload + 16-byte overhead) when checking MaxBytes, matching Go's memStoreMsgSize. PullConsumerEngine uses stream FirstSeq instead of hardcoded 1 for DeliverAll after purge. Fix 6 tests with Go parity assertions and updated MaxBytes values.
This commit is contained in:
@@ -280,14 +280,17 @@ public class JetStreamStreamFeatureTests
|
||||
restore.Error.ShouldNotBeNull();
|
||||
}
|
||||
|
||||
// Go: TestJetStreamMirrorUpdatePreventsSubjects server/jetstream_test.go
|
||||
// Go: TestJetStreamMirrorUpdatePreventsSubjects server/jetstream_test.go:9412
|
||||
// Mirror streams cannot have subjects — the Go test verifies that attempting
|
||||
// to update a mirror with subjects returns an error.
|
||||
[Fact]
|
||||
public async Task Mirror_stream_has_its_own_subjects()
|
||||
public async Task Mirror_stream_cannot_have_subjects()
|
||||
{
|
||||
await using var fx = await JetStreamApiFixture.StartWithMirrorSetupAsync();
|
||||
|
||||
// Mirror streams should have empty subjects (Go: "stream mirrors can not contain subjects")
|
||||
var info = await fx.RequestLocalAsync("$JS.API.STREAM.INFO.ORDERS_MIRROR", "{}");
|
||||
info.StreamInfo!.Config.Subjects.ShouldContain("orders.mirror.*");
|
||||
info.StreamInfo!.Config.Subjects.ShouldBeEmpty();
|
||||
}
|
||||
|
||||
// Go: TestJetStreamStreamSubjectsOverlap server/jetstream_test.go
|
||||
|
||||
Reference in New Issue
Block a user