60 lines
2.2 KiB
Go
60 lines
2.2 KiB
Go
package service
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/grafana/grafana/pkg/infra/db"
|
|
"github.com/grafana/grafana/pkg/infra/log"
|
|
"github.com/grafana/grafana/pkg/infra/tracing"
|
|
"github.com/grafana/grafana/pkg/services/annotations"
|
|
"github.com/grafana/grafana/pkg/services/annotations/annotationsimpl"
|
|
"github.com/grafana/grafana/pkg/services/dashboards"
|
|
"github.com/grafana/grafana/pkg/services/featuremgmt"
|
|
"github.com/grafana/grafana/pkg/services/licensing/licensingtest"
|
|
"github.com/grafana/grafana/pkg/services/publicdashboards"
|
|
"github.com/grafana/grafana/pkg/services/publicdashboards/database"
|
|
. "github.com/grafana/grafana/pkg/services/publicdashboards/models"
|
|
"github.com/grafana/grafana/pkg/services/publicdashboards/service/intervalv2"
|
|
"github.com/grafana/grafana/pkg/services/sqlstore"
|
|
"github.com/grafana/grafana/pkg/services/tag/tagimpl"
|
|
"github.com/grafana/grafana/pkg/setting"
|
|
)
|
|
|
|
func newPublicDashboardServiceImpl(
|
|
t *testing.T,
|
|
store *sqlstore.SQLStore,
|
|
cfg *setting.Cfg,
|
|
publicDashboardStore publicdashboards.Store,
|
|
dashboardService dashboards.DashboardService,
|
|
annotationsRepo annotations.Repository,
|
|
) (*PublicDashboardServiceImpl, db.DB, *setting.Cfg) {
|
|
t.Helper()
|
|
|
|
if store == nil {
|
|
store, cfg = db.InitTestDBWithCfg(t)
|
|
}
|
|
tagService := tagimpl.ProvideService(store)
|
|
if annotationsRepo == nil {
|
|
annotationsRepo = annotationsimpl.ProvideService(store, cfg, featuremgmt.WithFeatures(), tagService, tracing.InitializeTracerForTest(), nil, dashboardService)
|
|
}
|
|
|
|
if publicDashboardStore == nil {
|
|
publicDashboardStore = database.ProvideStore(store, cfg, featuremgmt.WithFeatures())
|
|
}
|
|
serviceWrapper := ProvideServiceWrapper(publicDashboardStore)
|
|
|
|
license := licensingtest.NewFakeLicensing()
|
|
license.On("FeatureEnabled", FeaturePublicDashboardsEmailSharing).Return(false)
|
|
|
|
return &PublicDashboardServiceImpl{
|
|
AnnotationsRepo: annotationsRepo,
|
|
log: log.New("test.logger"),
|
|
intervalCalculator: intervalv2.NewCalculator(),
|
|
dashboardService: dashboardService,
|
|
store: publicDashboardStore,
|
|
serviceWrapper: serviceWrapper,
|
|
license: license,
|
|
features: featuremgmt.WithFeatures(),
|
|
}, store, cfg
|
|
}
|