From c002a5d14ce6cf0688d430d5897502e89aae0289 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20Mierzwa?= Date: Thu, 6 Feb 2020 12:04:19 +0000 Subject: [PATCH] fix(tests): more config test coverage --- cmd/karma/script_test.go | 2 +- .../labels_color_custom_invalid_regex.txt | 16 ++++++++++++++++ .../labels_color_custom_missing_value.txt | 15 +++++++++++++++ cmd/karma/testdata/log_full_config_file.txt | 11 +++++------ cmd/karma/views_test.go | 12 ++++++++++++ 5 files changed, 49 insertions(+), 7 deletions(-) create mode 100644 cmd/karma/testdata/labels_color_custom_invalid_regex.txt create mode 100644 cmd/karma/testdata/labels_color_custom_missing_value.txt diff --git a/cmd/karma/script_test.go b/cmd/karma/script_test.go index e9a4e71d8..4be50a16d 100644 --- a/cmd/karma/script_test.go +++ b/cmd/karma/script_test.go @@ -19,7 +19,7 @@ func mainShoulFail() int { if err != nil { log.Error(err) } else if wasFatal { - return 100 + return 0 } else { log.Error("No error logged") return 100 diff --git a/cmd/karma/testdata/labels_color_custom_invalid_regex.txt b/cmd/karma/testdata/labels_color_custom_invalid_regex.txt new file mode 100644 index 000000000..2c669a8d9 --- /dev/null +++ b/cmd/karma/testdata/labels_color_custom_invalid_regex.txt @@ -0,0 +1,16 @@ +# Raises an error if label custom color config is using invalid regex rule +karma.bin-should-fail --log.format=text --log.config=false --log.level=error --config.file=karma.yaml +! stdout . +stderr 'msg="Failed to parse custom color regex rule ''\.\+\+\+\+'' for ''region'' label: error parsing regexp: invalid nested repetition operator: `\+\+`"' + +-- karma.yaml -- +alertmanager: + servers: + - name: default + uri: https://localhost:9093 +labels: + color: + custom: + region: + - value_re: ".++++" + color: "#736598" diff --git a/cmd/karma/testdata/labels_color_custom_missing_value.txt b/cmd/karma/testdata/labels_color_custom_missing_value.txt new file mode 100644 index 000000000..1f0f15e3e --- /dev/null +++ b/cmd/karma/testdata/labels_color_custom_missing_value.txt @@ -0,0 +1,15 @@ +# Raises an error if label custom color config is missing a value +karma.bin-should-fail --log.format=text --log.config=false --log.level=error --config.file=karma.yaml +! stdout . +stderr 'msg="Custom label color for ''region'' is missing ''value'' or ''value_re''"' + +-- karma.yaml -- +alertmanager: + servers: + - name: default + uri: https://localhost:9093 +labels: + color: + custom: + region: + - color: "#736598" diff --git a/cmd/karma/testdata/log_full_config_file.txt b/cmd/karma/testdata/log_full_config_file.txt index 4acc1030b..8329bb74d 100644 --- a/cmd/karma/testdata/log_full_config_file.txt +++ b/cmd/karma/testdata/log_full_config_file.txt @@ -17,7 +17,6 @@ alertmanager: readonly: true - name: local uri: http://localhost:9095 - timeout: 10s proxy: true readonly: false headers: @@ -62,9 +61,9 @@ grid: customValues: labels: cluster: - prod: 1 + Prod: 1 staging: 2 - dev: 3 + DEV: 3 severity: critical: 1 warning: 2 @@ -258,7 +257,7 @@ level=info msg=" headers: {}" level=info msg=" - name: local" level=info msg=" uri: http://localhost:9095" level=info msg=" external_uri: \"\"" -level=info msg=" timeout: 10s" +level=info msg=" timeout: 40s" level=info msg=" proxy: true" level=info msg=" readonly: false" level=info msg=" tls:" @@ -314,8 +313,8 @@ level=info msg=" label: severity" level=info msg=" customValues:" level=info msg=" labels:" level=info msg=" cluster:" -level=info msg=" dev: \"3\"" -level=info msg=" prod: \"1\"" +level=info msg=" DEV: \"3\"" +level=info msg=" Prod: \"1\"" level=info msg=" staging: \"2\"" level=info msg=" severity:" level=info msg=" critical: \"1\"" diff --git a/cmd/karma/views_test.go b/cmd/karma/views_test.go index 4d64c05f7..fd6cbe08f 100644 --- a/cmd/karma/views_test.go +++ b/cmd/karma/views_test.go @@ -760,3 +760,15 @@ func TestSilences(t *testing.T) { } } } + +func TestCORS(t *testing.T) { + mockConfig() + r := ginTestEngine() + req := httptest.NewRequest("OPTIONS", "/alerts.json", nil) + req.Header.Set("Origin", "foo.example.com") + resp := httptest.NewRecorder() + r.ServeHTTP(resp, req) + if resp.Header().Get("Access-Control-Allow-Origin") != "foo.example.com" { + t.Errorf("Invalid Access-Control-Allow-Origin value %q, expected 'foo.example.com'", resp.Header().Get("Access-Control-Allow-Origin")) + } +}