2023-08-18 11:14:43 -05:00
|
|
|
package cloudmonitoring
|
|
|
|
|
|
|
|
import (
|
|
|
|
"io"
|
|
|
|
"net/http"
|
|
|
|
"os"
|
|
|
|
"strings"
|
|
|
|
"testing"
|
|
|
|
|
|
|
|
"github.com/grafana/grafana-plugin-sdk-go/backend"
|
|
|
|
"github.com/grafana/grafana-plugin-sdk-go/experimental"
|
|
|
|
"github.com/stretchr/testify/require"
|
|
|
|
)
|
|
|
|
|
|
|
|
func TestPromqlQuery(t *testing.T) {
|
2024-01-29 10:24:23 -06:00
|
|
|
service := &Service{}
|
2023-08-18 11:14:43 -05:00
|
|
|
t.Run("parseResponse is returned", func(t *testing.T) {
|
|
|
|
fileData, err := os.ReadFile("./test-data/11-prom-response.json")
|
|
|
|
reader := strings.NewReader(string(fileData))
|
|
|
|
res := http.Response{Body: io.NopCloser(reader)}
|
|
|
|
if err != nil {
|
|
|
|
t.Fatal(err)
|
|
|
|
}
|
|
|
|
require.NoError(t, err)
|
|
|
|
dataRes := &backend.DataResponse{}
|
|
|
|
query := &cloudMonitoringProm{}
|
|
|
|
parsedProm := parseProm(&res)
|
2024-01-29 10:24:23 -06:00
|
|
|
err = query.parseResponse(dataRes, parsedProm, "", service.logger)
|
2023-08-18 11:14:43 -05:00
|
|
|
require.NoError(t, err)
|
|
|
|
frame := dataRes.Frames[0]
|
|
|
|
experimental.CheckGoldenJSONFrame(t, "test-data", "parse-response-is-returned", frame, false)
|
|
|
|
})
|
|
|
|
}
|