forked from TykTechnologies/tyk-pump
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathconfig_test.go
81 lines (59 loc) · 2.38 KB
/
config_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
package main
import (
"os"
"testing"
"github.com/stretchr/testify/assert"
)
func TestConfigEnv(t *testing.T) {
pumpNameCSV := "CSV"
pumpNameTest := "TEST"
testEnvVars := map[string]string{
PUMPS_ENV_PREFIX + "_" + "TOM": "a",
PUMPS_ENV_PREFIX + "_" + pumpNameTest + "_FILTERS_ORGIDS": `a`,
PUMPS_ENV_PREFIX + "_" + pumpNameTest + "_FILTERS_APIIDS": `b`,
PUMPS_ENV_PREFIX + "_" + pumpNameCSV + "_META_DIR": "/TEST",
PUMPS_ENV_PREFIX + "_" + pumpNameTest + "_TEST": "TEST",
PUMPS_ENV_PREFIX + "_" + pumpNameTest + "_TIMEOUT": "10",
PUMPS_ENV_PREFIX + "_" + pumpNameTest + "_OMITDETAILEDRECORDING": "true",
PUMPS_ENV_PREFIX + "_" + pumpNameTest + "_TYPE": "CSV",
PUMPS_ENV_PREFIX + "_" + pumpNameCSV + "_FILTERS_APIIDS": `a,b,c`,
}
for env, val := range testEnvVars {
os.Setenv(env, val)
}
defer func() {
for env := range testEnvVars {
os.Unsetenv(env)
}
}()
cfg := &TykPumpConfiguration{}
cfg.Pumps = make(map[string]PumpConfig)
cfg.Pumps["CSVTEST2"] = PumpConfig{}
defaultPath := ""
LoadConfig(&defaultPath, cfg)
assert.Len(t, cfg.Pumps, 3)
assert.Contains(t, cfg.Pumps, pumpNameTest)
assert.Contains(t, cfg.Pumps, pumpNameCSV)
assert.Contains(t, cfg.Pumps, "CSVTEST2")
assert.Equal(t, "csv", cfg.Pumps[pumpNameTest].Type)
assert.Equal(t, 10, cfg.Pumps[pumpNameTest].Timeout)
assert.Contains(t, cfg.Pumps[pumpNameTest].Meta, "meta_env_prefix")
assert.Contains(t, cfg.Pumps[pumpNameCSV].Meta, "meta_env_prefix")
assert.Equal(t, PUMPS_ENV_PREFIX+"_"+pumpNameCSV+PUMPS_ENV_META_PREFIX, cfg.Pumps[pumpNameCSV].Meta["meta_env_prefix"])
assert.Equal(t, PUMPS_ENV_PREFIX+"_"+pumpNameTest+PUMPS_ENV_META_PREFIX, cfg.Pumps[pumpNameTest].Meta["meta_env_prefix"])
assert.Len(t, cfg.Pumps[pumpNameCSV].Filters.APIIDs, 3)
}
func TestIgnoreConfig(t *testing.T) {
config := TykPumpConfiguration{
PurgeDelay: 10,
}
os.Setenv(ENV_PREVIX+"_OMITCONFIGFILE", "true")
defaultPath := ""
LoadConfig(&defaultPath, &config)
assert.Equal(t, 0, config.PurgeDelay, "TYK_OMITCONFIGFILE should have unset the configuation")
os.Unsetenv(ENV_PREVIX + "_OMITCONFIGFILE")
config = TykPumpConfiguration{}
config.PurgeDelay = 30
LoadConfig(&defaultPath, &config)
assert.Equal(t, 30, config.PurgeDelay, "TYK_OMITCONFIGFILE should not have unset the configuation")
}