Fix E2E test gaps and add comprehensive E2E + parity test suites
- Fix pull consumer fetch: send original stream subject in HMSG (not inbox) so NATS client distinguishes data messages from control messages - Fix MaxAge expiry: add background timer in StreamManager for periodic pruning - Fix JetStream wire format: Go-compatible anonymous objects with string enums, proper offset-based pagination for stream/consumer list APIs - Add 42 E2E black-box tests (core messaging, auth, TLS, accounts, JetStream) - Add ~1000 parity tests across all subsystems (gaps closure) - Update gap inventory docs to reflect implementation status
This commit is contained in:
@@ -83,6 +83,14 @@ public class NatsConfLexerTests
|
||||
keys[0].Value.ShouldBe("foo");
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Lex_CommentBody_EmitsTextToken()
|
||||
{
|
||||
var tokens = NatsConfLexer.Tokenize("# this is a comment\nfoo = 1").ToList();
|
||||
var commentBody = tokens.Single(t => t.Type == TokenType.Text);
|
||||
commentBody.Value.ShouldBe(" this is a comment");
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Lex_SlashComment_IsIgnored()
|
||||
{
|
||||
@@ -218,4 +226,13 @@ public class NatsConfLexerTests
|
||||
tokens[1].Type.ShouldBe(TokenType.String);
|
||||
tokens[1].Value.ShouldBe("3xyz");
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Lex_Unicode_surrogate_pairs_in_strings_are_preserved()
|
||||
{
|
||||
var tokens = NatsConfLexer.Tokenize("msg = \"rocket🚀\"\nport = 4222").ToList();
|
||||
tokens[1].Type.ShouldBe(TokenType.String);
|
||||
tokens[1].Value.ShouldBe("rocket🚀");
|
||||
tokens[2].Line.ShouldBe(2);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user