MCPcopy
hub / github.com/netbirdio/netbird / TestConfigFromArgs_EnvVarsApplied

Function TestConfigFromArgs_EnvVarsApplied

tools/idp-migrate/main_test.go:128–195  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

126}
127
128func TestConfigFromArgs_EnvVarsApplied(t *testing.T) {
129 t.Run("env vars fill in for missing flags", func(t *testing.T) {
130 t.Setenv("NETBIRD_CONFIG_PATH", "/env/management.json")
131 t.Setenv("NETBIRD_DATA_DIR", "/env/data")
132 t.Setenv("NETBIRD_IDP_SEED_INFO", "env-seed")
133 t.Setenv("NETBIRD_API_URL", "https://api.env.com")
134 t.Setenv("NETBIRD_DASHBOARD_URL", "https://dash.env.com")
135
136 cfg, err := configFromArgs([]string{})
137 require.NoError(t, err)
138
139 assert.Equal(t, "/env/management.json", cfg.configPath)
140 assert.Equal(t, "/env/data", cfg.dataDir)
141 assert.Equal(t, "env-seed", cfg.idpSeedInfo)
142 assert.Equal(t, "https://api.env.com", cfg.apiURL)
143 assert.Equal(t, "https://dash.env.com", cfg.dashboardURL)
144 })
145
146 t.Run("flags work without env vars", func(t *testing.T) {
147 cfg, err := configFromArgs([]string{
148 "--config", "/flag/management.json",
149 "--datadir", "/flag/data",
150 "--idp-seed-info", "flag-seed",
151 "--api-url", "https://api.flag.com",
152 "--dashboard-url", "https://dash.flag.com",
153 })
154 require.NoError(t, err)
155
156 assert.Equal(t, "/flag/management.json", cfg.configPath)
157 assert.Equal(t, "/flag/data", cfg.dataDir)
158 assert.Equal(t, "flag-seed", cfg.idpSeedInfo)
159 assert.Equal(t, "https://api.flag.com", cfg.apiURL)
160 assert.Equal(t, "https://dash.flag.com", cfg.dashboardURL)
161 })
162
163 t.Run("env vars override flags", func(t *testing.T) {
164 t.Setenv("NETBIRD_CONFIG_PATH", "/env/management.json")
165 t.Setenv("NETBIRD_API_URL", "https://api.env.com")
166
167 cfg, err := configFromArgs([]string{
168 "--config", "/flag/management.json",
169 "--datadir", "/flag/data",
170 "--idp-seed-info", "flag-seed",
171 "--api-url", "https://api.flag.com",
172 "--dashboard-url", "https://dash.flag.com",
173 })
174 require.NoError(t, err)
175
176 assert.Equal(t, "/env/management.json", cfg.configPath, "env should override flag")
177 assert.Equal(t, "https://api.env.com", cfg.apiURL, "env should override flag")
178 assert.Equal(t, "https://dash.flag.com", cfg.dashboardURL, "flag preserved when no env override")
179 })
180
181 t.Run("--domain flag with specific env var override", func(t *testing.T) {
182 t.Setenv("NETBIRD_API_URL", "https://api.env.com")
183
184 cfg, err := configFromArgs([]string{
185 "--domain", "both.flag.com",

Callers

nothing calls this directly

Calls 3

configFromArgsFunction · 0.85
RunMethod · 0.65
EqualMethod · 0.65

Tested by

no test coverage detected