From d5178416af32040d6a88f461a1fd12efb0e1e11d Mon Sep 17 00:00:00 2001 From: Dmitri Dolguikh Date: Sat, 11 Jul 2026 00:31:33 +0200 Subject: [PATCH] fix tests around encoding of minimal NetworkMapComponents Signed-off-by: Dmitri Dolguikh --- .../internals/shared/grpc/components_encoder.go | 2 +- .../shared/grpc/components_encoder_test.go | 15 +++++++++++---- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/management/internals/shared/grpc/components_encoder.go b/management/internals/shared/grpc/components_encoder.go index 3587b5e16..9c27cdcf6 100644 --- a/management/internals/shared/grpc/components_encoder.go +++ b/management/internals/shared/grpc/components_encoder.go @@ -57,7 +57,7 @@ func EncodeNetworkMapEnvelope(in ComponentsEnvelopeInput) *proto.NetworkMapEnvel // Network populated). The receiver gets an envelope it can decode // without crashing; AccountSettings stays non-nil so client-side // dereferences are safe. - if c == nil || c.IsEmpty() { + if c.IsEmpty() { // Match legacy missing-peer minimum: a NetworkMap with only Network // populated. The receiver gets enough to bootstrap (Network // identifier, dns_domain, account_settings) and the peer itself. diff --git a/management/internals/shared/grpc/components_encoder_test.go b/management/internals/shared/grpc/components_encoder_test.go index 4fca37cbd..60935fe9d 100644 --- a/management/internals/shared/grpc/components_encoder_test.go +++ b/management/internals/shared/grpc/components_encoder_test.go @@ -739,9 +739,9 @@ func TestEncodeNetworkMapEnvelope_ProxyPatchPropagated(t *testing.T) { assert.Len(t, full.ProxyPatch.ForwardingRules, 1) }) - t.Run("nil_components_graceful_degrade", func(t *testing.T) { + t.Run("empty_components_graceful_degrade", func(t *testing.T) { full := EncodeNetworkMapEnvelope(ComponentsEnvelopeInput{ - Components: nil, + Components: emptyNetworkMapComponents(), ProxyPatch: patch, }).GetFull() @@ -754,7 +754,7 @@ func TestEncodeNetworkMapEnvelope_NilComponentsGracefulDegrade(t *testing.T) { // nil Components → minimal envelope, no crash. Matches the legacy // behaviour for missing/unvalidated peers. env := EncodeNetworkMapEnvelope(ComponentsEnvelopeInput{ - Components: nil, + Components: emptyNetworkMapComponents(), DNSDomain: "netbird.cloud", }) @@ -763,7 +763,7 @@ func TestEncodeNetworkMapEnvelope_NilComponentsGracefulDegrade(t *testing.T) { require.NotNil(t, full) require.NotNil(t, full.AccountSettings, "AccountSettings must always be non-nil") assert.Equal(t, "netbird.cloud", full.DnsDomain) - assert.Empty(t, full.Peers) + assert.Len(t, full.Peers, 1) assert.Empty(t, full.Policies) } @@ -779,3 +779,10 @@ func TestEncodeNetworkMapEnvelope_AccountSettingsAlwaysEmitted(t *testing.T) { assert.False(t, full.AccountSettings.PeerLoginExpirationEnabled) assert.Zero(t, full.AccountSettings.PeerLoginExpirationNs) } + +func emptyNetworkMapComponents() *types.NetworkMapComponents { + return types.EmptyNetworkMapComponents( + &types.NetworkMapComponents{ + PeerID: "peer-id", Peers: map[string]*nbpeer.Peer{"peer-id": {}}}, + ) +}