github.com/hellofresh/janus@v0.0.0-20230925145208-ce8de8183c67/pkg/config/specification_test.go (about) 1 package config 2 3 import ( 4 "os" 5 "testing" 6 "time" 7 8 "github.com/stretchr/testify/assert" 9 "github.com/stretchr/testify/require" 10 ) 11 12 func Test_LoadEnv(t *testing.T) { 13 os.Setenv("PORT", "8001") 14 os.Setenv("STATS_AUTO_DISCOVER_WHITE_LIST", "api,foo,bar") 15 os.Setenv("BASIC_USERS", "admin:admin,test:test") 16 os.Setenv("GITHUB_ORGANIZATIONS", "hellofresh,tests") 17 os.Setenv("GITHUB_TEAMS", "hellofresh:tests,tests:devs") 18 os.Setenv("JANUS_ADMIN_TEAM", "janus-owners") 19 os.Setenv("TOKEN_TIMEOUT", "2h") 20 21 globalConfig, err := LoadEnv() 22 require.NoError(t, err) 23 24 assert.Equal(t, 8001, globalConfig.Port) 25 assert.Equal(t, 8081, globalConfig.Web.Port) 26 assert.Equal(t, "HS256", globalConfig.Web.Credentials.Algorithm) 27 assert.Equal(t, uint(0), globalConfig.Stats.AutoDiscoverThreshold) 28 assert.Equal(t, []string{"api", "foo", "bar"}, globalConfig.Stats.AutoDiscoverWhiteList) 29 assert.Equal(t, "error-log", globalConfig.Stats.ErrorsSection) 30 assert.False(t, globalConfig.TLS.IsHTTPS()) 31 assert.Equal(t, map[string]string{"admin": "admin", "test": "test"}, globalConfig.Web.Credentials.Basic.Users) 32 assert.Equal(t, map[string]string{"hellofresh": "tests", "tests": "devs"}, globalConfig.Web.Credentials.Github.Teams) 33 assert.Equal(t, []string{"hellofresh", "tests"}, globalConfig.Web.Credentials.Github.Organizations) 34 assert.Equal(t, "janus-owners", globalConfig.Web.Credentials.JanusAdminTeam) 35 assert.Equal(t, 2*time.Hour, globalConfig.Web.Credentials.Timeout) 36 assert.True(t, globalConfig.Web.Credentials.Github.IsConfigured()) 37 38 } 39 40 func TestDefaults(t *testing.T) { 41 os.Clearenv() 42 globalConfig, err := LoadEnv() 43 require.NoError(t, err) 44 45 assert.Equal(t, 8080, globalConfig.Port) 46 assert.Equal(t, 8081, globalConfig.Web.Port) 47 assert.Equal(t, 8433, globalConfig.TLS.Port) 48 assert.Equal(t, 8444, globalConfig.Web.TLS.Port) 49 assert.True(t, globalConfig.Web.TLS.Redirect) 50 assert.Equal(t, 20*time.Millisecond, globalConfig.BackendFlushInterval) 51 assert.Equal(t, 180*time.Second, globalConfig.RespondingTimeouts.IdleTimeout) 52 assert.True(t, globalConfig.TLS.Redirect) 53 assert.True(t, globalConfig.RequestID) 54 assert.Equal(t, 10*time.Second, globalConfig.Cluster.UpdateFrequency) 55 assert.Equal(t, "file:///etc/janus", globalConfig.Database.DSN) 56 57 assert.Equal(t, "HS256", globalConfig.Web.Credentials.Algorithm) 58 assert.Equal(t, map[string]string{"admin": "admin"}, globalConfig.Web.Credentials.Basic.Users) 59 60 assert.Equal(t, "log://", globalConfig.Stats.DSN) 61 assert.Equal(t, "error-log", globalConfig.Stats.ErrorsSection) 62 63 assert.Equal(t, "janus", globalConfig.Tracing.ServiceName) 64 assert.Equal(t, "probabilistic", globalConfig.Tracing.SamplingStrategy) 65 assert.Equal(t, 0.15, globalConfig.Tracing.SamplingParam) 66 assert.Empty(t, globalConfig.Tracing.DebugTraceKey) 67 assert.True(t, globalConfig.Tracing.IsPublicEndpoint) 68 }