mirror of
https://github.com/netbirdio/netbird.git
synced 2026-10-26 22:39:07 +01:00
add tests for sync message versions
Signed-off-by: Dmitri Dolguikh <dmitri.external@netbird.io>
This commit is contained in:
@@ -4,6 +4,8 @@ import (
|
|||||||
"context"
|
"context"
|
||||||
"os"
|
"os"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
|
"github.com/stretchr/testify/assert"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
@@ -20,26 +22,27 @@ const (
|
|||||||
"AuthAudience": "https://stageapp/",
|
"AuthAudience": "https://stageapp/",
|
||||||
"AuthIssuer": "https://something.eu.auth0.com/",
|
"AuthIssuer": "https://something.eu.auth0.com/",
|
||||||
"OIDCConfigEndpoint": "https://something.eu.auth0.com/.well-known/openid-configuration"
|
"OIDCConfigEndpoint": "https://something.eu.auth0.com/.well-known/openid-configuration"
|
||||||
|
},
|
||||||
|
"SupportedSyncMessageVersions": ["Base", "ComponentNetworkMap"],
|
||||||
|
"PerAccountSupportedSyncMessageVersions": {
|
||||||
|
"1": ["Base"],
|
||||||
|
"2": ["ComponentNetworkMap"],
|
||||||
|
"3": []
|
||||||
}
|
}
|
||||||
}`
|
}`
|
||||||
)
|
)
|
||||||
|
|
||||||
func Test_loadMgmtConfig(t *testing.T) {
|
func Test_loadMgmtConfig(t *testing.T) {
|
||||||
tmpFile, err := createConfig()
|
tmpFile, err := createConfig()
|
||||||
if err != nil {
|
assert.NoError(t, err)
|
||||||
t.Fatalf("failed to create config: %s", err)
|
|
||||||
}
|
|
||||||
|
|
||||||
cfg, err := LoadMgmtConfig(context.Background(), tmpFile)
|
cfg, err := LoadMgmtConfig(context.Background(), tmpFile)
|
||||||
if err != nil {
|
assert.NoError(t, err)
|
||||||
t.Fatalf("failed to load management config: %s", err)
|
assert.NotEmpty(t, cfg.Relay)
|
||||||
}
|
assert.NotEmpty(t, cfg.Relay.Addresses)
|
||||||
if cfg.Relay == nil {
|
assert.Equal(t, []string{"Base", "ComponentNetworkMap"}, cfg.SupportedSyncMessageVersions)
|
||||||
t.Fatalf("config is nil")
|
assert.Equal(t, map[string][]string{
|
||||||
}
|
"1": {"Base"}, "2": {"ComponentNetworkMap"}, "3": {}}, cfg.PerAccountSupportedSyncMessageVersions)
|
||||||
if len(cfg.Relay.Addresses) == 0 {
|
|
||||||
t.Fatalf("relay address is empty")
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func createConfig() (string, error) {
|
func createConfig() (string, error) {
|
||||||
|
|||||||
@@ -67,7 +67,7 @@ func SyncMessageVersionsFromString(toconvert []string) []SyncMessageVersion {
|
|||||||
for _, v := range AllSyncMessageVersions {
|
for _, v := range AllSyncMessageVersions {
|
||||||
allversions[v.String()] = v
|
allversions[v.String()] = v
|
||||||
}
|
}
|
||||||
toret := make([]SyncMessageVersion, len(toconvert))
|
toret := make([]SyncMessageVersion, 0)
|
||||||
for _, s := range toconvert {
|
for _, s := range toconvert {
|
||||||
toret = append(toret, allversions[s])
|
toret = append(toret, allversions[s])
|
||||||
}
|
}
|
||||||
@@ -95,6 +95,8 @@ func SyncMessageVersionsFromMap(toconvert map[string][]string) map[string][]Sync
|
|||||||
return toret
|
return toret
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// these come from the client; peer capabilities are expected to contain all enabled sync message versions.
|
||||||
|
// an empty list is interpreted as all but the base version are disabled.
|
||||||
func SyncMessageVersionsFromProtoEnums(peerCapabilities []int32) []SyncMessageVersion {
|
func SyncMessageVersionsFromProtoEnums(peerCapabilities []int32) []SyncMessageVersion {
|
||||||
toret := make([]SyncMessageVersion, 0)
|
toret := make([]SyncMessageVersion, 0)
|
||||||
for _, pc := range peerCapabilities {
|
for _, pc := range peerCapabilities {
|
||||||
|
|||||||
@@ -0,0 +1,45 @@
|
|||||||
|
package grpc
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"github.com/stretchr/testify/assert"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestValidation(t *testing.T) {
|
||||||
|
assert.NoError(t, ValidateSyncMessageVersions([]string{"Base", "ComponentNetworkMap"}))
|
||||||
|
assert.NoError(t, ValidateSyncMessageVersions([]string{}))
|
||||||
|
assert.ErrorIs(t, ValidateSyncMessageVersions([]string{"Boom"}), ErrorUnrecognizedSyncMessageVersion)
|
||||||
|
assert.ErrorIs(t, ValidateSyncMessageVersions([]string{"Base", "Boom"}), ErrorUnrecognizedSyncMessageVersion)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestConversionStringToEnum(t *testing.T) {
|
||||||
|
assert.Equal(t, []SyncMessageVersion{0, 1}, SyncMessageVersionsFromString([]string{}))
|
||||||
|
assert.Equal(t, []SyncMessageVersion{0}, SyncMessageVersionsFromString([]string{"Base"}))
|
||||||
|
assert.Equal(t, []SyncMessageVersion{1}, SyncMessageVersionsFromString([]string{"ComponentNetworkMap"}))
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestPerAccountConversionStringToEnum(t *testing.T) {
|
||||||
|
assert.Equal(t, map[string][]SyncMessageVersion{"1": {0, 1}}, SyncMessageVersionsFromMap(map[string][]string{"1": {}}))
|
||||||
|
assert.Equal(t, map[string][]SyncMessageVersion{"2": {0}}, SyncMessageVersionsFromMap(map[string][]string{"2": {"Base"}}))
|
||||||
|
assert.Equal(t, map[string][]SyncMessageVersion{"3": {1}, "4": {0, 1}},
|
||||||
|
SyncMessageVersionsFromMap(map[string][]string{
|
||||||
|
"3": {"ComponentNetworkMap"},
|
||||||
|
"4": {"Base", "ComponentNetworkMap"},
|
||||||
|
}))
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestConversionFromProtoEnums(t *testing.T) {
|
||||||
|
assert.Equal(t, []SyncMessageVersion{}, SyncMessageVersionsFromProtoEnums([]int32{}))
|
||||||
|
assert.Equal(t, []SyncMessageVersion{}, SyncMessageVersionsFromProtoEnums([]int32{0}))
|
||||||
|
assert.Equal(t, []SyncMessageVersion{1}, SyncMessageVersionsFromProtoEnums([]int32{3}))
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestCommonVersions(t *testing.T) {
|
||||||
|
assert.Equal(t, []SyncMessageVersion{0},
|
||||||
|
CommonSyncMessageVersions([]SyncMessageVersion{0, 1}, []SyncMessageVersion{}))
|
||||||
|
assert.Equal(t, []SyncMessageVersion{0},
|
||||||
|
CommonSyncMessageVersions([]SyncMessageVersion{0}, []SyncMessageVersion{0, 1, 2}))
|
||||||
|
assert.Equal(t, []SyncMessageVersion{5, 1, 0},
|
||||||
|
CommonSyncMessageVersions([]SyncMessageVersion{0, 1, 4, 5}, []SyncMessageVersion{1, 0, 5, 2}))
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user