advisor-registry
Andres Martinez Gotor 6 months ago
parent f176c43693
commit 86e466009a
  1. 60
      apps/advisor/pkg/app/checks/datasource/check_test.go
  2. 3
      apps/advisor/pkg/app/utils.go
  3. 34
      apps/advisor/pkg/app/utils_test.go

@ -13,36 +13,6 @@ import (
"github.com/stretchr/testify/assert"
)
type MockDatasourceSvc struct {
datasources.DataSourceService
dss []*datasources.DataSource
}
func (m *MockDatasourceSvc) GetAllDataSources(ctx context.Context, query *datasources.GetAllDataSourcesQuery) ([]*datasources.DataSource, error) {
return m.dss, nil
}
type MockPluginContextProvider struct {
datasource.PluginContextWrapper
pCtx backend.PluginContext
}
func (m *MockPluginContextProvider) PluginContextForDataSource(ctx context.Context, datasourceSettings *backend.DataSourceInstanceSettings) (backend.PluginContext, error) {
return m.pCtx, nil
}
type MockPluginClient struct {
plugins.Client
res *backend.CheckHealthResult
}
func (m *MockPluginClient) CheckHealth(ctx context.Context, req *backend.CheckHealthRequest) (*backend.CheckHealthResult, error) {
return m.res, nil
}
func TestCheck_Run(t *testing.T) {
t.Run("should return no errors when all datasources are healthy", func(t *testing.T) {
datasources := []*datasources.DataSource{
@ -119,3 +89,33 @@ func TestCheck_Run(t *testing.T) {
assert.Equal(t, "Health check failed: Prometheus", report.Errors[0].Reason)
})
}
type MockDatasourceSvc struct {
datasources.DataSourceService
dss []*datasources.DataSource
}
func (m *MockDatasourceSvc) GetAllDataSources(ctx context.Context, query *datasources.GetAllDataSourcesQuery) ([]*datasources.DataSource, error) {
return m.dss, nil
}
type MockPluginContextProvider struct {
datasource.PluginContextWrapper
pCtx backend.PluginContext
}
func (m *MockPluginContextProvider) PluginContextForDataSource(ctx context.Context, datasourceSettings *backend.DataSourceInstanceSettings) (backend.PluginContext, error) {
return m.pCtx, nil
}
type MockPluginClient struct {
plugins.Client
res *backend.CheckHealthResult
}
func (m *MockPluginClient) CheckHealth(ctx context.Context, req *backend.CheckHealthRequest) (*backend.CheckHealthResult, error) {
return m.res, nil
}

@ -2,6 +2,7 @@ package app
import (
"context"
"errors"
"fmt"
"github.com/grafana/grafana-app-sdk/resource"
@ -13,7 +14,7 @@ func getCheck(obj resource.Object, checks map[string]checks.Check) (checks.Check
labels := obj.GetLabels()
objTypeLabel, ok := labels[typeLabel]
if !ok {
return nil, fmt.Errorf("missing check type as label")
return nil, errors.New("missing check type as label")
}
c, ok := checks[objTypeLabel]
if !ok {

@ -11,23 +11,6 @@ import (
"github.com/stretchr/testify/assert"
)
type mockClient struct {
resource.Client
}
func (m *mockClient) PatchInto(ctx context.Context, id resource.Identifier, req resource.PatchRequest, opts resource.PatchOptions, obj resource.Object) error {
return nil
}
type mockCheck struct {
checks.Check
err error
}
func (m *mockCheck) Run(ctx context.Context, spec *advisorv0alpha1.CheckSpec) (*advisorv0alpha1.CheckV0alpha1StatusReport, error) {
return &advisorv0alpha1.CheckV0alpha1StatusReport{}, m.err
}
func TestGetCheck(t *testing.T) {
obj := &advisorv0alpha1.Check{}
obj.SetLabels(map[string]string{typeLabel: "testType"})
@ -111,3 +94,20 @@ func TestProcessCheck_RunError(t *testing.T) {
assert.Error(t, err)
assert.Equal(t, "error", obj.GetAnnotations()[statusAnnotation])
}
type mockClient struct {
resource.Client
}
func (m *mockClient) PatchInto(ctx context.Context, id resource.Identifier, req resource.PatchRequest, opts resource.PatchOptions, obj resource.Object) error {
return nil
}
type mockCheck struct {
checks.Check
err error
}
func (m *mockCheck) Run(ctx context.Context, spec *advisorv0alpha1.CheckSpec) (*advisorv0alpha1.CheckV0alpha1StatusReport, error) {
return &advisorv0alpha1.CheckV0alpha1StatusReport{}, m.err
}

Loading…
Cancel
Save