Chore: Promlib allows extendOptions to be nil (#84463)

* use logger from service

* allow extendOptions to be nil

* Update logger
This commit is contained in:
ismail simsek
2024-03-15 13:37:29 +01:00
committed by GitHub
parent 94a9aeaccc
commit eae9bfe4bc
6 changed files with 79 additions and 39 deletions

View File

@ -2,6 +2,7 @@ package promlib
import (
"context"
"fmt"
"io"
"net/http"
"testing"
@ -71,32 +72,7 @@ func TestService(t *testing.T) {
httpProvider := getMockPromTestSDKProvider(f)
service := NewService(httpProvider, backend.NewLoggerWith("logger", "test"), mockExtendTransportOptions)
req := &backend.CallResourceRequest{
PluginContext: backend.PluginContext{
OrgID: 0,
PluginID: "prometheus",
User: nil,
AppInstanceSettings: nil,
DataSourceInstanceSettings: &backend.DataSourceInstanceSettings{
ID: 0,
UID: "",
Type: "prometheus",
Name: "test-prom",
URL: "http://localhost:9090",
User: "",
Database: "",
BasicAuthEnabled: true,
BasicAuthUser: "admin",
Updated: time.Time{},
JSONData: []byte("{}"),
},
},
Path: "/api/v1/series",
Method: http.MethodPost,
URL: "/api/v1/series",
Body: []byte("match%5B%5D: ALERTS\nstart: 1655271408\nend: 1655293008"),
}
req := mockRequest()
sender := &fakeSender{}
err := service.CallResource(context.Background(), req, sender)
require.NoError(t, err)
@ -115,4 +91,57 @@ func TestService(t *testing.T) {
})
})
})
t.Run("no extendOptions function provided", func(t *testing.T) {
f := &fakeHTTPClientProvider{}
httpProvider := getMockPromTestSDKProvider(f)
service := NewService(httpProvider, backend.NewLoggerWith("logger", "test"), nil)
require.NotNil(t, service)
require.NotNil(t, service.im)
})
t.Run("extendOptions function provided", func(t *testing.T) {
f := &fakeHTTPClientProvider{}
httpProvider := getMockPromTestSDKProvider(f)
service := NewService(httpProvider, backend.NewLoggerWith("logger", "test"), func(ctx context.Context, settings backend.DataSourceInstanceSettings, clientOpts *sdkhttpclient.Options) error {
fmt.Println(ctx, settings, clientOpts)
require.NotNil(t, ctx)
require.NotNil(t, settings)
require.Equal(t, "test-prom", settings.Name)
return nil
})
req := mockRequest()
sender := &fakeSender{}
err := service.CallResource(context.Background(), req, sender)
require.NoError(t, err)
})
}
func mockRequest() *backend.CallResourceRequest {
return &backend.CallResourceRequest{
PluginContext: backend.PluginContext{
OrgID: 0,
PluginID: "prometheus",
User: nil,
AppInstanceSettings: nil,
DataSourceInstanceSettings: &backend.DataSourceInstanceSettings{
ID: 0,
UID: "",
Type: "prometheus",
Name: "test-prom",
URL: "http://localhost:9090",
User: "",
Database: "",
BasicAuthEnabled: true,
BasicAuthUser: "admin",
Updated: time.Time{},
JSONData: []byte("{}"),
},
},
Path: "/api/v1/series",
Method: http.MethodPost,
URL: "/api/v1/series",
Body: []byte("match%5B%5D: ALERTS\nstart: 1655271408\nend: 1655293008"),
}
}