mirror of
https://github.com/netbirdio/netbird.git
synced 2026-07-30 01:42:36 -04:00
Signed-off-by: Dmitri Dolguikh <dmitri.external@netbird.io> Co-authored-by: crn4 <vladimir@netbird.io> Co-authored-by: pascal <pascal@netbird.io>
78 lines
2.0 KiB
Go
78 lines
2.0 KiB
Go
package cmd
|
|
|
|
import (
|
|
"context"
|
|
"os"
|
|
"testing"
|
|
|
|
"github.com/netbirdio/netbird/shared/management/grpc"
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
const (
|
|
exampleConfig = `{
|
|
"Relay": {
|
|
"Addresses": [
|
|
"rel://192.168.100.1:8085",
|
|
"rel://192.168.100.1:8086"
|
|
],
|
|
"CredentialsTTL": "12h0m0s",
|
|
"Secret": "8f7e9d6c5b4a3f2e1d0c9b8a7f6e5d4c3b2a1f0e9d8c7b6a5f4e3d2c1b0a9f8"
|
|
},
|
|
"HttpConfig": {
|
|
"AuthAudience": "https://stageapp/",
|
|
"AuthIssuer": "https://something.eu.auth0.com/",
|
|
"OIDCConfigEndpoint": "https://something.eu.auth0.com/.well-known/openid-configuration"
|
|
},
|
|
"HighestSupportedSyncMessageVersion": 1,
|
|
"PerAccountHighestSupportedSyncMessageVersion": {
|
|
"1": 0,
|
|
"2": 1
|
|
}
|
|
}`
|
|
)
|
|
|
|
func Test_LoadMgmtConfig(t *testing.T) {
|
|
tmpFile, err := createConfig(exampleConfig)
|
|
assert.NoError(t, err)
|
|
|
|
cfg, err := LoadMgmtConfig(context.Background(), tmpFile)
|
|
assert.NoError(t, err)
|
|
assert.NotEmpty(t, cfg.Relay)
|
|
assert.NotEmpty(t, cfg.Relay.Addresses)
|
|
assert.Equal(t, int(grpc.ComponentNetworkMap), *cfg.HighestSupportedSyncMessageVersion)
|
|
assert.Equal(t, map[string]int{"1": int(grpc.Base), "2": int(grpc.ComponentNetworkMap)}, cfg.PerAccountHighestSupportedSyncMessageVersion)
|
|
}
|
|
|
|
func Test_LoadMgmtConfig_Empty(t *testing.T) {
|
|
tmpFile, err := createConfig(`{
|
|
"HttpConfig": {
|
|
"AuthAudience": "https://stageapp/",
|
|
"AuthIssuer": "https://something.eu.auth0.com/",
|
|
"OIDCConfigEndpoint": "https://something.eu.auth0.com/.well-known/openid-configuration"
|
|
}
|
|
}`)
|
|
assert.NoError(t, err)
|
|
|
|
cfg, err := LoadMgmtConfig(context.Background(), tmpFile)
|
|
assert.NoError(t, err)
|
|
assert.Nil(t, cfg.HighestSupportedSyncMessageVersion)
|
|
assert.Nil(t, cfg.PerAccountHighestSupportedSyncMessageVersion)
|
|
}
|
|
|
|
func createConfig(config string) (string, error) {
|
|
tmpfile, err := os.CreateTemp("", "config.json")
|
|
if err != nil {
|
|
return "", err
|
|
}
|
|
_, err = tmpfile.Write([]byte(config))
|
|
if err != nil {
|
|
return "", err
|
|
}
|
|
|
|
if err := tmpfile.Close(); err != nil {
|
|
return "", err
|
|
}
|
|
return tmpfile.Name(), nil
|
|
}
|