mirror of
https://github.com/gomods/athens
synced 2026-02-03 11:00:32 +00:00
config: flatten Proxy struct (#846)
* config: flatten Proxy struct * fix mw_test * gofmt * add line
This commit is contained in:
+30
-47
@@ -14,15 +14,11 @@ import (
|
||||
const exampleConfigPath = "../../config.dev.toml"
|
||||
|
||||
func compareConfigs(parsedConf *Config, expConf *Config, t *testing.T) {
|
||||
opts := cmpopts.IgnoreTypes(StorageConfig{}, ProxyConfig{})
|
||||
opts := cmpopts.IgnoreTypes(StorageConfig{})
|
||||
eq := cmp.Equal(parsedConf, expConf, opts)
|
||||
if !eq {
|
||||
t.Errorf("Parsed Example configuration did not match expected values. Expected: %+v. Actual: %+v", expConf, parsedConf)
|
||||
}
|
||||
eq = cmp.Equal(parsedConf.Proxy, expConf.Proxy)
|
||||
if !eq {
|
||||
t.Errorf("Parsed Example Proxy configuration did not match expected values. Expected: %+v. Actual: %+v", expConf.Proxy, parsedConf.Proxy)
|
||||
}
|
||||
compareStorageConfigs(parsedConf.Storage, expConf.Storage, t)
|
||||
}
|
||||
|
||||
@@ -60,26 +56,12 @@ func TestPortDefaultsCorrectly(t *testing.T) {
|
||||
t.Fatalf("Env override failed: %v", err)
|
||||
}
|
||||
expPort := ":3000"
|
||||
if conf.Proxy.Port != expPort {
|
||||
t.Errorf("Port was incorrect. Got: %s, want: %s", conf.Proxy.Port, expPort)
|
||||
if conf.Port != expPort {
|
||||
t.Errorf("Port was incorrect. Got: %s, want: %s", conf.Port, expPort)
|
||||
}
|
||||
}
|
||||
|
||||
func TestEnvOverrides(t *testing.T) {
|
||||
|
||||
expProxy := ProxyConfig{
|
||||
StorageType: "minio",
|
||||
GlobalEndpoint: "mytikas.gomods.io",
|
||||
Port: ":7000",
|
||||
BasicAuthUser: "testuser",
|
||||
BasicAuthPass: "testpass",
|
||||
ForceSSL: true,
|
||||
ValidatorHook: "testhook.io",
|
||||
PathPrefix: "prefix",
|
||||
NETRCPath: "/test/path/.netrc",
|
||||
HGRCPath: "/test/path/.hgrc",
|
||||
}
|
||||
|
||||
expConf := &Config{
|
||||
GoEnv: "production",
|
||||
GoGetWorkers: 10,
|
||||
@@ -91,8 +73,17 @@ func TestEnvOverrides(t *testing.T) {
|
||||
TimeoutConf: TimeoutConf{
|
||||
Timeout: 30,
|
||||
},
|
||||
Proxy: &expProxy,
|
||||
Storage: &StorageConfig{},
|
||||
StorageType: "minio",
|
||||
GlobalEndpoint: "mytikas.gomods.io",
|
||||
Port: ":7000",
|
||||
BasicAuthUser: "testuser",
|
||||
BasicAuthPass: "testpass",
|
||||
ForceSSL: true,
|
||||
ValidatorHook: "testhook.io",
|
||||
PathPrefix: "prefix",
|
||||
NETRCPath: "/test/path/.netrc",
|
||||
HGRCPath: "/test/path/.hgrc",
|
||||
Storage: &StorageConfig{},
|
||||
}
|
||||
|
||||
envVars := getEnvMap(expConf)
|
||||
@@ -186,7 +177,6 @@ func TestParseExampleConfig(t *testing.T) {
|
||||
|
||||
// initialize all struct pointers so we get all applicable env variables
|
||||
emptyConf := &Config{
|
||||
Proxy: &ProxyConfig{},
|
||||
Storage: &StorageConfig{
|
||||
CDN: &CDNConfig{},
|
||||
Disk: &DiskConfig{},
|
||||
@@ -209,14 +199,6 @@ func TestParseExampleConfig(t *testing.T) {
|
||||
|
||||
globalTimeout := 300
|
||||
|
||||
expProxy := &ProxyConfig{
|
||||
StorageType: "memory",
|
||||
GlobalEndpoint: "http://localhost:3001",
|
||||
Port: ":3000",
|
||||
BasicAuthUser: "",
|
||||
BasicAuthPass: "",
|
||||
}
|
||||
|
||||
expStorage := &StorageConfig{
|
||||
CDN: &CDNConfig{
|
||||
Endpoint: "cdn.example.com",
|
||||
@@ -275,8 +257,12 @@ func TestParseExampleConfig(t *testing.T) {
|
||||
TimeoutConf: TimeoutConf{
|
||||
Timeout: 300,
|
||||
},
|
||||
Proxy: expProxy,
|
||||
Storage: expStorage,
|
||||
StorageType: "memory",
|
||||
GlobalEndpoint: "http://localhost:3001",
|
||||
Port: ":3000",
|
||||
BasicAuthUser: "",
|
||||
BasicAuthPass: "",
|
||||
Storage: expStorage,
|
||||
}
|
||||
|
||||
absPath, err := filepath.Abs(exampleConfigPath)
|
||||
@@ -306,19 +292,16 @@ func getEnvMap(config *Config) map[string]string {
|
||||
"ATHENS_TRACE_EXPORTER": config.TraceExporterURL,
|
||||
}
|
||||
|
||||
proxy := config.Proxy
|
||||
if proxy != nil {
|
||||
envVars["ATHENS_STORAGE_TYPE"] = proxy.StorageType
|
||||
envVars["ATHENS_GLOBAL_ENDPOINT"] = proxy.GlobalEndpoint
|
||||
envVars["ATHENS_PORT"] = proxy.Port
|
||||
envVars["BASIC_AUTH_USER"] = proxy.BasicAuthUser
|
||||
envVars["BASIC_AUTH_PASS"] = proxy.BasicAuthPass
|
||||
envVars["PROXY_FORCE_SSL"] = strconv.FormatBool(proxy.ForceSSL)
|
||||
envVars["ATHENS_PROXY_VALIDATOR"] = proxy.ValidatorHook
|
||||
envVars["ATHENS_PATH_PREFIX"] = proxy.PathPrefix
|
||||
envVars["ATHENS_NETRC_PATH"] = proxy.NETRCPath
|
||||
envVars["ATHENS_HGRC_PATH"] = proxy.HGRCPath
|
||||
}
|
||||
envVars["ATHENS_STORAGE_TYPE"] = config.StorageType
|
||||
envVars["ATHENS_GLOBAL_ENDPOINT"] = config.GlobalEndpoint
|
||||
envVars["ATHENS_PORT"] = config.Port
|
||||
envVars["BASIC_AUTH_USER"] = config.BasicAuthUser
|
||||
envVars["BASIC_AUTH_PASS"] = config.BasicAuthPass
|
||||
envVars["PROXY_FORCE_SSL"] = strconv.FormatBool(config.ForceSSL)
|
||||
envVars["ATHENS_PROXY_VALIDATOR"] = config.ValidatorHook
|
||||
envVars["ATHENS_PATH_PREFIX"] = config.PathPrefix
|
||||
envVars["ATHENS_NETRC_PATH"] = config.NETRCPath
|
||||
envVars["ATHENS_HGRC_PATH"] = config.HGRCPath
|
||||
|
||||
storage := config.Storage
|
||||
if storage != nil {
|
||||
|
||||
Reference in New Issue
Block a user