mirror of https://github.com/grafana/grafana.git
				
				
				
			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 | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -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