mirror of
https://github.com/netbirdio/netbird.git
synced 2026-10-24 14:29:07 +02:00
64 lines
2.2 KiB
Go
64 lines
2.2 KiB
Go
package cmd
|
|
|
|
import (
|
|
"context"
|
|
"os"
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/require"
|
|
|
|
accesslogsmanager "github.com/netbirdio/netbird/management/internals/modules/reverseproxy/accesslogs/manager"
|
|
nbconfig "github.com/netbirdio/netbird/management/internals/server/config"
|
|
)
|
|
|
|
func TestApplyAdminDefaultsCopiesServerStoreWithoutExposedAddress(t *testing.T) {
|
|
cfg := DefaultConfig()
|
|
cfg.Server.ExposedAddress = ""
|
|
cfg.Server.DataDir = "/srv/netbird"
|
|
cfg.Server.Store = StoreConfig{
|
|
Engine: "postgres",
|
|
DSN: "postgres://user:pass@example.com/netbird",
|
|
}
|
|
|
|
cfg.ApplyAdminDefaults()
|
|
|
|
require.Equal(t, "/srv/netbird", cfg.Management.DataDir)
|
|
require.Equal(t, "postgres", cfg.Management.Store.Engine)
|
|
require.Equal(t, cfg.Server.Store.DSN, cfg.Management.Store.DSN)
|
|
}
|
|
|
|
func TestOpenAdminEventStoreMissingEncryptionKeyReturnsNilInterface(t *testing.T) {
|
|
eventStore, err := openAdminEventStore(context.Background(), &CombinedConfig{}, &nbconfig.Config{})
|
|
require.Error(t, err)
|
|
require.Contains(t, err.Error(), "encryption key")
|
|
require.Nil(t, eventStore)
|
|
}
|
|
|
|
func TestApplyServerStoreEnv(t *testing.T) {
|
|
t.Setenv("NB_STORE_ENGINE_POSTGRES_DSN", "")
|
|
t.Setenv("NB_STORE_ENGINE_SQLITE_FILE", "")
|
|
|
|
applyServerStoreEnv(StoreConfig{Engine: "postgres", DSN: "postgres-dsn", File: "store.db"})
|
|
require.Equal(t, "postgres-dsn", os.Getenv("NB_STORE_ENGINE_POSTGRES_DSN"))
|
|
require.Equal(t, "store.db", os.Getenv("NB_STORE_ENGINE_SQLITE_FILE"))
|
|
}
|
|
|
|
func TestApplyAccessLogStoreEnv(t *testing.T) {
|
|
keys := []string{accesslogsmanager.StoreEngineEnv, accesslogsmanager.PostgresDSNEnv, accesslogsmanager.SqliteFileEnv}
|
|
for _, key := range keys {
|
|
t.Setenv(key, "")
|
|
require.NoError(t, os.Unsetenv(key))
|
|
}
|
|
|
|
applyAccessLogStoreEnv(StoreConfig{})
|
|
for _, key := range keys {
|
|
_, ok := os.LookupEnv(key)
|
|
require.False(t, ok, "%s should stay unset for an empty accessLogStore block", key)
|
|
}
|
|
|
|
applyAccessLogStoreEnv(StoreConfig{Engine: "Postgres", DSN: "postgres-dsn", File: "access_logs.db"})
|
|
require.Equal(t, "postgres", os.Getenv(accesslogsmanager.StoreEngineEnv))
|
|
require.Equal(t, "postgres-dsn", os.Getenv(accesslogsmanager.PostgresDSNEnv))
|
|
require.Equal(t, "access_logs.db", os.Getenv(accesslogsmanager.SqliteFileEnv))
|
|
}
|