2020-06-21 10:32:46 +00:00
|
|
|
package main
|
|
|
|
|
|
|
|
import (
|
|
|
|
"fmt"
|
|
|
|
"net/url"
|
|
|
|
"os"
|
|
|
|
"testing"
|
|
|
|
|
|
|
|
"github.com/VictoriaMetrics/VictoriaMetrics/app/vmalert/notifier"
|
|
|
|
)
|
|
|
|
|
|
|
|
func TestGetExternalURL(t *testing.T) {
|
|
|
|
expURL := "https://vicotriametrics.com/path"
|
|
|
|
u, err := getExternalURL(expURL, "", false)
|
|
|
|
if err != nil {
|
|
|
|
t.Errorf("unexpected error %s", err)
|
|
|
|
}
|
|
|
|
if u.String() != expURL {
|
|
|
|
t.Errorf("unexpected url want %s, got %s", expURL, u.String())
|
|
|
|
}
|
|
|
|
h, _ := os.Hostname()
|
|
|
|
expURL = fmt.Sprintf("https://%s:4242", h)
|
|
|
|
u, err = getExternalURL("", "0.0.0.0:4242", true)
|
|
|
|
if err != nil {
|
|
|
|
t.Errorf("unexpected error %s", err)
|
|
|
|
}
|
|
|
|
if u.String() != expURL {
|
|
|
|
t.Errorf("unexpected url want %s, got %s", expURL, u.String())
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestGetAlertURLGenerator(t *testing.T) {
|
|
|
|
testAlert := notifier.Alert{GroupID: 42, ID: 2, Value: 4}
|
|
|
|
u, _ := url.Parse("https://victoriametrics.com/path")
|
|
|
|
fn, err := getAlertURLGenerator(u, "", false)
|
|
|
|
if err != nil {
|
|
|
|
t.Errorf("unexpected error %s", err)
|
|
|
|
}
|
|
|
|
if exp := "https://victoriametrics.com/path/api/v1/42/2/status"; exp != fn(testAlert) {
|
|
|
|
t.Errorf("unexpected url want %s, got %s", exp, fn(testAlert))
|
|
|
|
}
|
|
|
|
_, err = getAlertURLGenerator(nil, "foo?{{invalid}}", true)
|
|
|
|
if err == nil {
|
2020-07-02 15:05:36 +00:00
|
|
|
t.Errorf("expected tempalte validation error got nil")
|
2020-06-21 10:32:46 +00:00
|
|
|
}
|
|
|
|
fn, err = getAlertURLGenerator(u, "foo?query={{$value}}", true)
|
|
|
|
if err != nil {
|
|
|
|
t.Errorf("unexpected error %s", err)
|
|
|
|
}
|
|
|
|
if exp := "https://victoriametrics.com/path/foo?query=4"; exp != fn(testAlert) {
|
|
|
|
t.Errorf("unexpected url want %s, got %s", exp, fn(testAlert))
|
|
|
|
}
|
|
|
|
}
|