This commit is contained in:
@@ -0,0 +1,42 @@
|
||||
package loki
|
||||
|
||||
import (
|
||||
"net/http"
|
||||
"net/http/httptest"
|
||||
"strings"
|
||||
"testing"
|
||||
"time"
|
||||
)
|
||||
|
||||
func TestLabelsValuesAndQueryRange(t *testing.T) {
|
||||
ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
|
||||
switch r.URL.Path {
|
||||
case "/loki/api/v1/labels":
|
||||
_, _ = w.Write([]byte(`{"status":"success","data":["service","container"]}`))
|
||||
case "/loki/api/v1/label/service/values":
|
||||
_, _ = w.Write([]byte(`{"status":"success","data":["api"]}`))
|
||||
case "/loki/api/v1/query_range":
|
||||
if !strings.Contains(r.URL.Query().Get("query"), "api") {
|
||||
t.Fatalf("query not passed through: %s", r.URL.RawQuery)
|
||||
}
|
||||
_, _ = w.Write([]byte(`{"status":"success","data":{"result":[{"stream":{"service":"api"},"values":[["1700000000000000000","error token=secret"]]}]}}`))
|
||||
default:
|
||||
http.NotFound(w, r)
|
||||
}
|
||||
}))
|
||||
defer ts.Close()
|
||||
|
||||
client := New(ts.URL, "", "", "")
|
||||
labels, err := client.Labels(t.Context())
|
||||
if err != nil || len(labels) != 2 {
|
||||
t.Fatalf("labels=%v err=%v", labels, err)
|
||||
}
|
||||
values, err := client.LabelValues(t.Context(), "service")
|
||||
if err != nil || values[0] != "api" {
|
||||
t.Fatalf("values=%v err=%v", values, err)
|
||||
}
|
||||
result, err := client.QueryRange(t.Context(), `{service="api"}`, time.Minute, 10)
|
||||
if err != nil || result.Count != 1 {
|
||||
t.Fatalf("result=%#v err=%v", result, err)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user