mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
Chore: Cleanup usageStatsMock duplication (#39710)
* Chore: Cleanup usageStatsMock duplication * Remove making a new slice for UsageStatsMock
This commit is contained in:
parent
b626ba223f
commit
990911a3b9
@ -87,37 +87,9 @@ type testState struct {
|
|||||||
dashQueries []*models.GetDashboardQuery
|
dashQueries []*models.GetDashboardQuery
|
||||||
}
|
}
|
||||||
|
|
||||||
type usageStatsMock struct {
|
|
||||||
t *testing.T
|
|
||||||
metricsFuncs []usagestats.MetricsFunc
|
|
||||||
}
|
|
||||||
|
|
||||||
func (usm *usageStatsMock) RegisterMetricsFunc(fn usagestats.MetricsFunc) {
|
|
||||||
usm.metricsFuncs = append(usm.metricsFuncs, fn)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (usm *usageStatsMock) GetUsageReport(_ context.Context) (usagestats.Report, error) {
|
|
||||||
all := make(map[string]interface{})
|
|
||||||
for _, fn := range usm.metricsFuncs {
|
|
||||||
fnMetrics, err := fn()
|
|
||||||
require.NoError(usm.t, err)
|
|
||||||
|
|
||||||
for name, value := range fnMetrics {
|
|
||||||
all[name] = value
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return usagestats.Report{Metrics: all}, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (usm *usageStatsMock) ShouldBeReported(_ string) bool {
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
|
|
||||||
func (usm *usageStatsMock) RegisterSendReportCallback(_ usagestats.SendReportCallbackFunc) {}
|
|
||||||
|
|
||||||
func newTestLive(t *testing.T) *live.GrafanaLive {
|
func newTestLive(t *testing.T) *live.GrafanaLive {
|
||||||
cfg := &setting.Cfg{AppURL: "http://localhost:3000/"}
|
cfg := &setting.Cfg{AppURL: "http://localhost:3000/"}
|
||||||
gLive, err := live.ProvideService(nil, cfg, routing.NewRouteRegister(), nil, nil, nil, nil, sqlstore.InitTestDB(t), &usageStatsMock{t: t})
|
gLive, err := live.ProvideService(nil, cfg, routing.NewRouteRegister(), nil, nil, nil, nil, sqlstore.InitTestDB(t), &usagestats.UsageStatsMock{T: t})
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
return gLive
|
return gLive
|
||||||
}
|
}
|
||||||
|
36
pkg/infra/usagestats/mock.go
Normal file
36
pkg/infra/usagestats/mock.go
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
package usagestats
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"github.com/stretchr/testify/require"
|
||||||
|
)
|
||||||
|
|
||||||
|
type UsageStatsMock struct {
|
||||||
|
T testing.TB
|
||||||
|
metricsFuncs []MetricsFunc
|
||||||
|
}
|
||||||
|
|
||||||
|
func (usm *UsageStatsMock) RegisterMetricsFunc(fn MetricsFunc) {
|
||||||
|
usm.metricsFuncs = append(usm.metricsFuncs, fn)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (usm *UsageStatsMock) GetUsageReport(_ context.Context) (Report, error) {
|
||||||
|
all := make(map[string]interface{})
|
||||||
|
for _, fn := range usm.metricsFuncs {
|
||||||
|
fnMetrics, err := fn()
|
||||||
|
require.NoError(usm.T, err)
|
||||||
|
|
||||||
|
for name, value := range fnMetrics {
|
||||||
|
all[name] = value
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return Report{Metrics: all}, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (usm *UsageStatsMock) ShouldBeReported(_ string) bool {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
|
func (usm *UsageStatsMock) RegisterSendReportCallback(_ SendReportCallbackFunc) {}
|
@ -19,7 +19,7 @@ func setupTestEnv(t testing.TB) *OSSAccessControlService {
|
|||||||
|
|
||||||
cfg := setting.NewCfg()
|
cfg := setting.NewCfg()
|
||||||
cfg.FeatureToggles = map[string]bool{"accesscontrol": true}
|
cfg.FeatureToggles = map[string]bool{"accesscontrol": true}
|
||||||
ac := ProvideService(cfg, &usageStatsMock{metricsFuncs: make([]usagestats.MetricsFunc, 0)})
|
ac := ProvideService(cfg, &usagestats.UsageStatsMock{T: t})
|
||||||
return ac
|
return ac
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -45,34 +45,6 @@ func removeRoleHelper(role string) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
type usageStatsMock struct {
|
|
||||||
t *testing.T
|
|
||||||
metricsFuncs []usagestats.MetricsFunc
|
|
||||||
}
|
|
||||||
|
|
||||||
func (usm *usageStatsMock) RegisterMetricsFunc(fn usagestats.MetricsFunc) {
|
|
||||||
usm.metricsFuncs = append(usm.metricsFuncs, fn)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (usm *usageStatsMock) GetUsageReport(_ context.Context) (usagestats.Report, error) {
|
|
||||||
all := make(map[string]interface{})
|
|
||||||
for _, fn := range usm.metricsFuncs {
|
|
||||||
fnMetrics, err := fn()
|
|
||||||
require.NoError(usm.t, err)
|
|
||||||
|
|
||||||
for name, value := range fnMetrics {
|
|
||||||
all[name] = value
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return usagestats.Report{Metrics: all}, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (usm *usageStatsMock) ShouldBeReported(_ string) bool {
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
|
|
||||||
func (usm *usageStatsMock) RegisterSendReportCallback(_ usagestats.SendReportCallbackFunc) {}
|
|
||||||
|
|
||||||
type evaluatingPermissionsTestCase struct {
|
type evaluatingPermissionsTestCase struct {
|
||||||
desc string
|
desc string
|
||||||
user userTestCase
|
user userTestCase
|
||||||
@ -164,7 +136,7 @@ func TestUsageMetrics(t *testing.T) {
|
|||||||
cfg.FeatureToggles = map[string]bool{"accesscontrol": true}
|
cfg.FeatureToggles = map[string]bool{"accesscontrol": true}
|
||||||
}
|
}
|
||||||
|
|
||||||
s := ProvideService(cfg, &usageStatsMock{t: t, metricsFuncs: make([]usagestats.MetricsFunc, 0)})
|
s := ProvideService(cfg, &usagestats.UsageStatsMock{T: t})
|
||||||
report, err := s.UsageStats.GetUsageReport(context.Background())
|
report, err := s.UsageStats.GetUsageReport(context.Background())
|
||||||
assert.Nil(t, err)
|
assert.Nil(t, err)
|
||||||
|
|
||||||
@ -279,7 +251,7 @@ func TestOSSAccessControlService_RegisterFixedRole(t *testing.T) {
|
|||||||
t.Run(tc.name, func(t *testing.T) {
|
t.Run(tc.name, func(t *testing.T) {
|
||||||
ac := &OSSAccessControlService{
|
ac := &OSSAccessControlService{
|
||||||
Cfg: setting.NewCfg(),
|
Cfg: setting.NewCfg(),
|
||||||
UsageStats: &usageStatsMock{t: t, metricsFuncs: make([]usagestats.MetricsFunc, 0)},
|
UsageStats: &usagestats.UsageStatsMock{T: t},
|
||||||
Log: log.New("accesscontrol-test"),
|
Log: log.New("accesscontrol-test"),
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -398,7 +370,7 @@ func TestOSSAccessControlService_DeclareFixedRoles(t *testing.T) {
|
|||||||
t.Run(tt.name, func(t *testing.T) {
|
t.Run(tt.name, func(t *testing.T) {
|
||||||
ac := &OSSAccessControlService{
|
ac := &OSSAccessControlService{
|
||||||
Cfg: setting.NewCfg(),
|
Cfg: setting.NewCfg(),
|
||||||
UsageStats: &usageStatsMock{t: t, metricsFuncs: make([]usagestats.MetricsFunc, 0)},
|
UsageStats: &usagestats.UsageStatsMock{T: t},
|
||||||
Log: log.New("accesscontrol-test"),
|
Log: log.New("accesscontrol-test"),
|
||||||
registrations: accesscontrol.RegistrationList{},
|
registrations: accesscontrol.RegistrationList{},
|
||||||
}
|
}
|
||||||
@ -484,7 +456,7 @@ func TestOSSAccessControlService_RegisterFixedRoles(t *testing.T) {
|
|||||||
// Setup
|
// Setup
|
||||||
ac := &OSSAccessControlService{
|
ac := &OSSAccessControlService{
|
||||||
Cfg: setting.NewCfg(),
|
Cfg: setting.NewCfg(),
|
||||||
UsageStats: &usageStatsMock{t: t, metricsFuncs: make([]usagestats.MetricsFunc, 0)},
|
UsageStats: &usagestats.UsageStatsMock{T: t},
|
||||||
Log: log.New("accesscontrol-test"),
|
Log: log.New("accesscontrol-test"),
|
||||||
registrations: accesscontrol.RegistrationList{},
|
registrations: accesscontrol.RegistrationList{},
|
||||||
}
|
}
|
||||||
|
@ -12,13 +12,15 @@ import (
|
|||||||
"testing"
|
"testing"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
"github.com/grafana/grafana/pkg/infra/usagestats"
|
||||||
|
|
||||||
"github.com/grafana/grafana/pkg/setting"
|
"github.com/grafana/grafana/pkg/setting"
|
||||||
. "github.com/smartystreets/goconvey/convey"
|
. "github.com/smartystreets/goconvey/convey"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestEngineTimeouts(t *testing.T) {
|
func TestEngineTimeouts(t *testing.T) {
|
||||||
Convey("Alerting engine timeout tests", t, func() {
|
Convey("Alerting engine timeout tests", t, func() {
|
||||||
usMock := &usageStatsMock{t: t}
|
usMock := &usagestats.UsageStatsMock{T: t}
|
||||||
engine := ProvideAlertEngine(nil, nil, nil, nil, usMock, setting.NewCfg())
|
engine := ProvideAlertEngine(nil, nil, nil, nil, usMock, setting.NewCfg())
|
||||||
setting.AlertingNotificationTimeout = 30 * time.Second
|
setting.AlertingNotificationTimeout = 30 * time.Second
|
||||||
setting.AlertingMaxAttempts = 3
|
setting.AlertingMaxAttempts = 3
|
||||||
|
@ -13,7 +13,6 @@ import (
|
|||||||
"github.com/grafana/grafana/pkg/models"
|
"github.com/grafana/grafana/pkg/models"
|
||||||
"github.com/grafana/grafana/pkg/setting"
|
"github.com/grafana/grafana/pkg/setting"
|
||||||
. "github.com/smartystreets/goconvey/convey"
|
. "github.com/smartystreets/goconvey/convey"
|
||||||
"github.com/stretchr/testify/require"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
type FakeEvalHandler struct {
|
type FakeEvalHandler struct {
|
||||||
@ -41,38 +40,10 @@ func (handler *FakeResultHandler) handle(evalContext *EvalContext) error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
type usageStatsMock struct {
|
|
||||||
t *testing.T
|
|
||||||
metricsFuncs []usagestats.MetricsFunc
|
|
||||||
}
|
|
||||||
|
|
||||||
func (usm *usageStatsMock) RegisterMetricsFunc(fn usagestats.MetricsFunc) {
|
|
||||||
usm.metricsFuncs = append(usm.metricsFuncs, fn)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (usm *usageStatsMock) GetUsageReport(_ context.Context) (usagestats.Report, error) {
|
|
||||||
all := make(map[string]interface{})
|
|
||||||
for _, fn := range usm.metricsFuncs {
|
|
||||||
fnMetrics, err := fn()
|
|
||||||
require.NoError(usm.t, err)
|
|
||||||
|
|
||||||
for name, value := range fnMetrics {
|
|
||||||
all[name] = value
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return usagestats.Report{Metrics: all}, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (usm *usageStatsMock) ShouldBeReported(_ string) bool {
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
|
|
||||||
func (usm *usageStatsMock) RegisterSendReportCallback(_ usagestats.SendReportCallbackFunc) {}
|
|
||||||
|
|
||||||
func TestEngineProcessJob(t *testing.T) {
|
func TestEngineProcessJob(t *testing.T) {
|
||||||
Convey("Alerting engine job processing", t, func() {
|
Convey("Alerting engine job processing", t, func() {
|
||||||
bus := bus.New()
|
bus := bus.New()
|
||||||
usMock := &usageStatsMock{t: t}
|
usMock := &usagestats.UsageStatsMock{T: t}
|
||||||
engine := ProvideAlertEngine(nil, bus, nil, nil, usMock, setting.NewCfg())
|
engine := ProvideAlertEngine(nil, bus, nil, nil, usMock, setting.NewCfg())
|
||||||
setting.AlertingEvaluationTimeout = 30 * time.Second
|
setting.AlertingEvaluationTimeout = 30 * time.Second
|
||||||
setting.AlertingNotificationTimeout = 30 * time.Second
|
setting.AlertingNotificationTimeout = 30 * time.Second
|
||||||
|
Loading…
Reference in New Issue
Block a user