From cbe15f71af9546a12bb11801c24fd7635beade12 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20Mierzwa?= Date: Tue, 28 Mar 2017 09:10:09 -0700 Subject: [PATCH] Add tests for config handling --- config/config_test.go | 63 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 config/config_test.go diff --git a/config/config_test.go b/config/config_test.go new file mode 100644 index 000000000..84c25bb82 --- /dev/null +++ b/config/config_test.go @@ -0,0 +1,63 @@ +package config + +import ( + "os" + "testing" + "time" +) + +type flagNameTest struct { + env string + flag string +} + +var flagNameTests = []flagNameTest{ + flagNameTest{env: "MyEnv", flag: "my.env"}, + flagNameTest{env: "MyENV", flag: "my.env"}, + flagNameTest{env: "MYEnv", flag: "myenv"}, +} + +func TestMakeFlagName(t *testing.T) { + for _, testCase := range flagNameTests { + generatedFlag := makeFlagName(testCase.env) + if generatedFlag != testCase.flag { + t.Errorf("Invalid flag name generated from env '%s', expected '%s', got '%s'", testCase.env, testCase.flag, generatedFlag) + } + } +} + +func stringInSlice(stringArray []string, value string) bool { + for _, s := range stringArray { + if s == value { + return true + } + } + return false +} + +func TestReadConfig(t *testing.T) { + os.Setenv("ALERTMANAGER_TTL", "1s") + os.Setenv("ALERTMANAGER_URI", "http://localhost") + os.Setenv("DEBUG", "true") + os.Setenv("COLOR_LABELS_STATIC", "a bb ccc") + Config.Read() + if Config.AlertmanagerTTL != time.Second { + t.Errorf("Config.AlertmanagerTTL is invalid, expected 1s, got %v", Config.AlertmanagerTTL) + } + if Config.Debug != true { + t.Errorf("Config.Debug is %v with env DEBUG=true set", Config.Debug) + } + if !stringInSlice(Config.ColorLabelsStatic, "a") { + t.Errorf("Config.ColorLabelsStatic is missing value 'a': %v", Config.ColorLabelsStatic) + } + if !stringInSlice(Config.ColorLabelsStatic, "bb") { + t.Errorf("Config.ColorLabelsStatic is missing value 'bb': %v", Config.ColorLabelsStatic) + } + if !stringInSlice(Config.ColorLabelsStatic, "ccc") { + t.Errorf("Config.ColorLabelsStatic is missing value 'ccc': %v", Config.ColorLabelsStatic) + } + if Config.Port != 8080 { + t.Errorf("Config.Port is invalid, expected 8080, got %v", Config.Port) + } + +}