44 lines
1.1 KiB
Go
44 lines
1.1 KiB
Go
package cmd
|
|
|
|
import (
|
|
"os"
|
|
"testing"
|
|
"time"
|
|
)
|
|
|
|
func Test_parseEnv(t *testing.T) {
|
|
os.Setenv("LISTEN", ":9090")
|
|
os.Setenv("SCRAPE_TIMEOUT", "120s")
|
|
os.Setenv("URL_8080", "http://127.0.0.1:8080/metrics,keyUrl1_1:valueUrl1_1,keyUrl1_2:valueUrl1_2")
|
|
os.Setenv("URL_8081", "http://127.0.0.1:8081/metrics,keyUrl2_1:valueUrl2_1")
|
|
os.Setenv("URL_8082", "http://127.0.0.1:8082/url3")
|
|
c, err := parseConfigFromEnv()
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if c.Listen != ":9090" {
|
|
t.Fatalf("listen: %s\n", c.Listen)
|
|
}
|
|
if c.ScrapeTimeout != 120*time.Second {
|
|
t.Fatalf("timeout: %s\n", c.ScrapeTimeout)
|
|
}
|
|
for _, s := range c.Sources {
|
|
switch s.Url {
|
|
case "http://127.0.0.1:8080/metrics":
|
|
if s.Labels[`keyUrl1_1`] != `valueUrl1_1` || s.Labels[`keyUrl1_2`] != `valueUrl1_2` {
|
|
t.Fatalf("labels: %v", s.Labels)
|
|
}
|
|
case "http://127.0.0.1:8081/metrics":
|
|
if s.Labels[`keyUrl2_1`] != `valueUrl2_1` {
|
|
t.Fatalf("labels: %v", s.Labels)
|
|
}
|
|
case "http://127.0.0.1:8082/url3":
|
|
if len(s.Labels) > 0 {
|
|
t.Fatalf("labels: %v", s.Labels)
|
|
}
|
|
default:
|
|
t.Fatalf("unknown url: %s", s.Url)
|
|
}
|
|
}
|
|
}
|