- 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
47 lines
1.4 KiB
C#
47 lines
1.4 KiB
C#
using NATS.Server.Auth;
|
|
|
|
namespace NATS.Server.Tests.Auth;
|
|
|
|
public class AuthModelAndCalloutConstantsParityTests
|
|
{
|
|
[Fact]
|
|
public void NkeyUser_exposes_parity_fields()
|
|
{
|
|
var now = DateTimeOffset.UtcNow;
|
|
var nkeyUser = new NKeyUser
|
|
{
|
|
Nkey = "UABC",
|
|
Issued = now,
|
|
AllowedConnectionTypes = new HashSet<string> { "STANDARD", "WEBSOCKET" },
|
|
ProxyRequired = true,
|
|
};
|
|
|
|
nkeyUser.Issued.ShouldBe(now);
|
|
nkeyUser.ProxyRequired.ShouldBeTrue();
|
|
nkeyUser.AllowedConnectionTypes.ShouldContain("STANDARD");
|
|
}
|
|
|
|
[Fact]
|
|
public void User_exposes_parity_fields()
|
|
{
|
|
var user = new User
|
|
{
|
|
Username = "alice",
|
|
Password = "secret",
|
|
AllowedConnectionTypes = new HashSet<string> { "STANDARD" },
|
|
ProxyRequired = false,
|
|
};
|
|
|
|
user.ProxyRequired.ShouldBeFalse();
|
|
user.AllowedConnectionTypes.ShouldContain("STANDARD");
|
|
}
|
|
|
|
[Fact]
|
|
public void External_auth_callout_constants_match_go_subjects_and_header()
|
|
{
|
|
ExternalAuthCalloutAuthenticator.AuthCalloutSubject.ShouldBe("$SYS.REQ.USER.AUTH");
|
|
ExternalAuthCalloutAuthenticator.AuthRequestSubject.ShouldBe("nats-authorization-request");
|
|
ExternalAuthCalloutAuthenticator.AuthRequestXKeyHeader.ShouldBe("Nats-Server-Xkey");
|
|
}
|
|
}
|