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 | ||||
| } | ||||
| 
 | ||||
| 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 { | ||||
| 	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) | ||||
| 	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.FeatureToggles = map[string]bool{"accesscontrol": true} | ||||
| 	ac := ProvideService(cfg, &usageStatsMock{metricsFuncs: make([]usagestats.MetricsFunc, 0)}) | ||||
| 	ac := ProvideService(cfg, &usagestats.UsageStatsMock{T: t}) | ||||
| 	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 { | ||||
| 	desc       string | ||||
| 	user       userTestCase | ||||
|  | @ -164,7 +136,7 @@ func TestUsageMetrics(t *testing.T) { | |||
| 				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()) | ||||
| 			assert.Nil(t, err) | ||||
| 
 | ||||
|  | @ -279,7 +251,7 @@ func TestOSSAccessControlService_RegisterFixedRole(t *testing.T) { | |||
| 		t.Run(tc.name, func(t *testing.T) { | ||||
| 			ac := &OSSAccessControlService{ | ||||
| 				Cfg:        setting.NewCfg(), | ||||
| 				UsageStats: &usageStatsMock{t: t, metricsFuncs: make([]usagestats.MetricsFunc, 0)}, | ||||
| 				UsageStats: &usagestats.UsageStatsMock{T: t}, | ||||
| 				Log:        log.New("accesscontrol-test"), | ||||
| 			} | ||||
| 
 | ||||
|  | @ -398,7 +370,7 @@ func TestOSSAccessControlService_DeclareFixedRoles(t *testing.T) { | |||
| 		t.Run(tt.name, func(t *testing.T) { | ||||
| 			ac := &OSSAccessControlService{ | ||||
| 				Cfg:           setting.NewCfg(), | ||||
| 				UsageStats:    &usageStatsMock{t: t, metricsFuncs: make([]usagestats.MetricsFunc, 0)}, | ||||
| 				UsageStats:    &usagestats.UsageStatsMock{T: t}, | ||||
| 				Log:           log.New("accesscontrol-test"), | ||||
| 				registrations: accesscontrol.RegistrationList{}, | ||||
| 			} | ||||
|  | @ -484,7 +456,7 @@ func TestOSSAccessControlService_RegisterFixedRoles(t *testing.T) { | |||
| 			// Setup
 | ||||
| 			ac := &OSSAccessControlService{ | ||||
| 				Cfg:           setting.NewCfg(), | ||||
| 				UsageStats:    &usageStatsMock{t: t, metricsFuncs: make([]usagestats.MetricsFunc, 0)}, | ||||
| 				UsageStats:    &usagestats.UsageStatsMock{T: t}, | ||||
| 				Log:           log.New("accesscontrol-test"), | ||||
| 				registrations: accesscontrol.RegistrationList{}, | ||||
| 			} | ||||
|  |  | |||
|  | @ -12,13 +12,15 @@ import ( | |||
| 	"testing" | ||||
| 	"time" | ||||
| 
 | ||||
| 	"github.com/grafana/grafana/pkg/infra/usagestats" | ||||
| 
 | ||||
| 	"github.com/grafana/grafana/pkg/setting" | ||||
| 	. "github.com/smartystreets/goconvey/convey" | ||||
| ) | ||||
| 
 | ||||
| func TestEngineTimeouts(t *testing.T) { | ||||
| 	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()) | ||||
| 		setting.AlertingNotificationTimeout = 30 * time.Second | ||||
| 		setting.AlertingMaxAttempts = 3 | ||||
|  |  | |||
|  | @ -13,7 +13,6 @@ import ( | |||
| 	"github.com/grafana/grafana/pkg/models" | ||||
| 	"github.com/grafana/grafana/pkg/setting" | ||||
| 	. "github.com/smartystreets/goconvey/convey" | ||||
| 	"github.com/stretchr/testify/require" | ||||
| ) | ||||
| 
 | ||||
| type FakeEvalHandler struct { | ||||
|  | @ -41,38 +40,10 @@ func (handler *FakeResultHandler) handle(evalContext *EvalContext) error { | |||
| 	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) { | ||||
| 	Convey("Alerting engine job processing", t, func() { | ||||
| 		bus := bus.New() | ||||
| 		usMock := &usageStatsMock{t: t} | ||||
| 		usMock := &usagestats.UsageStatsMock{T: t} | ||||
| 		engine := ProvideAlertEngine(nil, bus, nil, nil, usMock, setting.NewCfg()) | ||||
| 		setting.AlertingEvaluationTimeout = 30 * time.Second | ||||
| 		setting.AlertingNotificationTimeout = 30 * time.Second | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue