Plugins: Update plugin fakes package name (#112503)
update plugin fakes package name
This commit is contained in:
@@ -21,7 +21,7 @@ import (
|
||||
"github.com/grafana/grafana/pkg/infra/tracing"
|
||||
"github.com/grafana/grafana/pkg/plugins"
|
||||
"github.com/grafana/grafana/pkg/plugins/backendplugin/coreplugin"
|
||||
"github.com/grafana/grafana/pkg/plugins/manager/fakes"
|
||||
"github.com/grafana/grafana/pkg/plugins/manager/pluginfakes"
|
||||
"github.com/grafana/grafana/pkg/services/accesscontrol"
|
||||
"github.com/grafana/grafana/pkg/services/caching"
|
||||
datasources "github.com/grafana/grafana/pkg/services/datasources/fakes"
|
||||
@@ -166,7 +166,7 @@ func TestIntegrationCallResource(t *testing.T) {
|
||||
}
|
||||
})
|
||||
|
||||
pluginRegistry := fakes.NewFakePluginRegistry()
|
||||
pluginRegistry := pluginfakes.NewFakePluginRegistry()
|
||||
require.NoError(t, pluginRegistry.Add(context.Background(), &plugins.Plugin{
|
||||
JSONData: plugins.JSONData{
|
||||
ID: "grafana-testdata-datasource",
|
||||
@@ -174,7 +174,7 @@ func TestIntegrationCallResource(t *testing.T) {
|
||||
},
|
||||
}))
|
||||
middlewares := pluginsintegration.CreateMiddlewares(cfg, &oauthtokentest.Service{}, tracing.InitializeTracerForTest(), &caching.OSSCachingService{}, featuremgmt.WithFeatures(), prometheus.DefaultRegisterer, pluginRegistry)
|
||||
pc, err := backend.HandlerFromMiddlewares(&fakes.FakePluginClient{
|
||||
pc, err := backend.HandlerFromMiddlewares(&pluginfakes.FakePluginClient{
|
||||
CallResourceHandlerFunc: backend.CallResourceHandlerFunc(func(ctx context.Context,
|
||||
req *backend.CallResourceRequest, sender backend.CallResourceResponseSender) error {
|
||||
return errors.New("something went wrong")
|
||||
|
||||
@@ -30,7 +30,7 @@ import (
|
||||
"github.com/grafana/grafana/pkg/infra/log"
|
||||
"github.com/grafana/grafana/pkg/infra/tracing"
|
||||
"github.com/grafana/grafana/pkg/plugins"
|
||||
pluginfakes "github.com/grafana/grafana/pkg/plugins/manager/fakes"
|
||||
"github.com/grafana/grafana/pkg/plugins/manager/pluginfakes"
|
||||
"github.com/grafana/grafana/pkg/services/accesscontrol/acimpl"
|
||||
"github.com/grafana/grafana/pkg/services/accesscontrol/actest"
|
||||
"github.com/grafana/grafana/pkg/services/auth"
|
||||
|
||||
+21
-21
@@ -25,8 +25,8 @@ import (
|
||||
"github.com/grafana/grafana/pkg/plugins"
|
||||
"github.com/grafana/grafana/pkg/plugins/auth"
|
||||
"github.com/grafana/grafana/pkg/plugins/config"
|
||||
"github.com/grafana/grafana/pkg/plugins/manager/fakes"
|
||||
"github.com/grafana/grafana/pkg/plugins/manager/filestore"
|
||||
"github.com/grafana/grafana/pkg/plugins/manager/pluginfakes"
|
||||
"github.com/grafana/grafana/pkg/plugins/manager/registry"
|
||||
"github.com/grafana/grafana/pkg/plugins/manager/signature"
|
||||
"github.com/grafana/grafana/pkg/plugins/manager/signature/statickey"
|
||||
@@ -106,7 +106,7 @@ func Test_PluginsInstallAndUninstall(t *testing.T) {
|
||||
hs.accesscontrolService = &actest.FakeService{}
|
||||
|
||||
hs.pluginInstaller = NewFakePluginInstaller()
|
||||
hs.pluginFileStore = &fakes.FakePluginFileStore{}
|
||||
hs.pluginFileStore = &pluginfakes.FakePluginFileStore{}
|
||||
hs.pluginStore = pluginstore.NewFakePluginStore(pluginstore.Plugin{
|
||||
JSONData: plugins.JSONData{
|
||||
ID: pluginID,
|
||||
@@ -160,7 +160,7 @@ func Test_GetPluginAssetCDNRedirect(t *testing.T) {
|
||||
nonCdnPlugin := &plugins.Plugin{
|
||||
JSONData: plugins.JSONData{ID: nonCDNPluginID, Info: plugins.Info{Version: "2.0.0"}},
|
||||
}
|
||||
registry := &fakes.FakePluginRegistry{
|
||||
registry := &pluginfakes.FakePluginRegistry{
|
||||
Store: map[string]*plugins.Plugin{
|
||||
cdnPluginID: cdnPlugin,
|
||||
nonCDNPluginID: nonCdnPlugin,
|
||||
@@ -264,7 +264,7 @@ func Test_GetPluginAssets(t *testing.T) {
|
||||
|
||||
t.Run("Given a request for an existing plugin file", func(t *testing.T) {
|
||||
p := createPlugin(plugins.JSONData{ID: pluginID}, plugins.ClassExternal, plugins.NewLocalFS(filepath.Dir(requestedFile)))
|
||||
pluginRegistry := &fakes.FakePluginRegistry{
|
||||
pluginRegistry := &pluginfakes.FakePluginRegistry{
|
||||
Store: map[string]*plugins.Plugin{
|
||||
p.ID: p,
|
||||
},
|
||||
@@ -282,7 +282,7 @@ func Test_GetPluginAssets(t *testing.T) {
|
||||
|
||||
t.Run("Given a request for a relative path", func(t *testing.T) {
|
||||
p := createPlugin(plugins.JSONData{ID: pluginID}, plugins.ClassExternal, plugins.NewFakeFS())
|
||||
pluginRegistry := &fakes.FakePluginRegistry{
|
||||
pluginRegistry := &pluginfakes.FakePluginRegistry{
|
||||
Store: map[string]*plugins.Plugin{
|
||||
p.ID: p,
|
||||
},
|
||||
@@ -299,7 +299,7 @@ func Test_GetPluginAssets(t *testing.T) {
|
||||
|
||||
t.Run("Given a request for an existing plugin file that is not listed as a signature covered file", func(t *testing.T) {
|
||||
p := createPlugin(plugins.JSONData{ID: pluginID}, plugins.ClassCore, plugins.NewLocalFS(filepath.Dir(requestedFile)))
|
||||
pluginRegistry := &fakes.FakePluginRegistry{
|
||||
pluginRegistry := &pluginfakes.FakePluginRegistry{
|
||||
Store: map[string]*plugins.Plugin{
|
||||
p.ID: p,
|
||||
},
|
||||
@@ -317,7 +317,7 @@ func Test_GetPluginAssets(t *testing.T) {
|
||||
|
||||
t.Run("Given a request for an non-existing plugin file", func(t *testing.T) {
|
||||
p := createPlugin(plugins.JSONData{ID: pluginID}, plugins.ClassExternal, plugins.NewFakeFS())
|
||||
service := &fakes.FakePluginRegistry{
|
||||
service := &pluginfakes.FakePluginRegistry{
|
||||
Store: map[string]*plugins.Plugin{
|
||||
p.ID: p,
|
||||
},
|
||||
@@ -341,7 +341,7 @@ func Test_GetPluginAssets(t *testing.T) {
|
||||
requestedFile := "nonExistent"
|
||||
url := fmt.Sprintf("/public/plugins/%s/%s", pluginID, requestedFile)
|
||||
pluginAssetScenario(t, "When calling GET on", url, "/public/plugins/:pluginId/*",
|
||||
setting.NewCfg(), fakes.NewFakePluginRegistry(), func(sc *scenarioContext) {
|
||||
setting.NewCfg(), pluginfakes.NewFakePluginRegistry(), func(sc *scenarioContext) {
|
||||
callGetPluginAsset(sc)
|
||||
|
||||
var respJson map[string]any
|
||||
@@ -427,7 +427,7 @@ func TestMakePluginResourceRequestContentTypeEmpty(t *testing.T) {
|
||||
|
||||
func TestPluginMarkdown(t *testing.T) {
|
||||
t.Run("Plugin not installed returns error", func(t *testing.T) {
|
||||
pluginFileStore := &fakes.FakePluginFileStore{
|
||||
pluginFileStore := &pluginfakes.FakePluginFileStore{
|
||||
FileFunc: func(ctx context.Context, pluginID, pluginVersion, filename string) (*plugins.File, error) {
|
||||
return nil, plugins.ErrPluginNotInstalled
|
||||
},
|
||||
@@ -442,7 +442,7 @@ func TestPluginMarkdown(t *testing.T) {
|
||||
|
||||
t.Run("File fetch will be retried using different casing if error occurs", func(t *testing.T) {
|
||||
var requestedFiles []string
|
||||
pluginFileStore := &fakes.FakePluginFileStore{
|
||||
pluginFileStore := &pluginfakes.FakePluginFileStore{
|
||||
FileFunc: func(ctx context.Context, pluginID, pluginVersion, filename string) (*plugins.File, error) {
|
||||
requestedFiles = append(requestedFiles, filename)
|
||||
return nil, errors.New("some error")
|
||||
@@ -479,7 +479,7 @@ func TestPluginMarkdown(t *testing.T) {
|
||||
for _, tc := range tcs {
|
||||
data := []byte{123}
|
||||
var requestedFiles []string
|
||||
pluginFileStore := &fakes.FakePluginFileStore{
|
||||
pluginFileStore := &pluginfakes.FakePluginFileStore{
|
||||
FileFunc: func(ctx context.Context, pluginID, pluginVersion, filename string) (*plugins.File, error) {
|
||||
requestedFiles = append(requestedFiles, filename)
|
||||
return &plugins.File{Content: data}, nil
|
||||
@@ -496,7 +496,7 @@ func TestPluginMarkdown(t *testing.T) {
|
||||
})
|
||||
|
||||
t.Run("Non markdown file request returns an error", func(t *testing.T) {
|
||||
hs := HTTPServer{pluginFileStore: &fakes.FakePluginFileStore{}}
|
||||
hs := HTTPServer{pluginFileStore: &pluginfakes.FakePluginFileStore{}}
|
||||
|
||||
md, err := hs.pluginMarkdown(context.Background(), "", "", "test.json")
|
||||
require.ErrorIs(t, err, ErrUnexpectedFileExtension)
|
||||
@@ -506,7 +506,7 @@ func TestPluginMarkdown(t *testing.T) {
|
||||
t.Run("Happy path", func(t *testing.T) {
|
||||
data := []byte{1, 2, 3}
|
||||
|
||||
pluginFileStore := &fakes.FakePluginFileStore{
|
||||
pluginFileStore := &pluginfakes.FakePluginFileStore{
|
||||
FileFunc: func(ctx context.Context, pluginID, pluginVersion, filename string) (*plugins.File, error) {
|
||||
return &plugins.File{Content: data}, nil
|
||||
},
|
||||
@@ -527,7 +527,7 @@ func callGetPluginAsset(sc *scenarioContext) {
|
||||
func pluginAssetScenario(t *testing.T, desc string, url string, urlPattern string,
|
||||
cfg *setting.Cfg, pluginRegistry registry.Service, fn scenarioFunc) {
|
||||
t.Run(fmt.Sprintf("%s %s", desc, url), func(t *testing.T) {
|
||||
store, err := pluginstore.NewPluginStoreForTest(pluginRegistry, &fakes.FakeLoader{}, &fakes.FakeSourceRegistry{})
|
||||
store, err := pluginstore.NewPluginStoreForTest(pluginRegistry, &pluginfakes.FakeLoader{}, &pluginfakes.FakeSourceRegistry{})
|
||||
require.NoError(t, err)
|
||||
|
||||
hs := HTTPServer{
|
||||
@@ -606,7 +606,7 @@ func Test_PluginsList_AccessControl(t *testing.T) {
|
||||
Description: "Data source for MySQL databases",
|
||||
}}, plugins.ClassCore, plugins.NewFakeFS())
|
||||
|
||||
pluginRegistry := &fakes.FakePluginRegistry{
|
||||
pluginRegistry := &pluginfakes.FakePluginRegistry{
|
||||
Store: map[string]*plugins.Plugin{
|
||||
p1.ID: p1,
|
||||
p2.ID: p2,
|
||||
@@ -642,7 +642,7 @@ func Test_PluginsList_AccessControl(t *testing.T) {
|
||||
for _, tc := range tcs {
|
||||
t.Run(tc.desc, func(t *testing.T) {
|
||||
server := SetupAPITestServer(t, func(hs *HTTPServer) {
|
||||
store, err := pluginstore.NewPluginStoreForTest(pluginRegistry, &fakes.FakeLoader{}, &fakes.FakeSourceRegistry{})
|
||||
store, err := pluginstore.NewPluginStoreForTest(pluginRegistry, &pluginfakes.FakeLoader{}, &pluginfakes.FakeSourceRegistry{})
|
||||
require.NoError(t, err)
|
||||
|
||||
hs.Cfg = setting.NewCfg()
|
||||
@@ -789,7 +789,7 @@ func Test_PluginsSettings(t *testing.T) {
|
||||
Info: plugins.Info{
|
||||
Version: "1.0.0",
|
||||
}}, plugins.ClassExternal, plugins.NewFakeFS())
|
||||
pluginRegistry := &fakes.FakePluginRegistry{
|
||||
pluginRegistry := &pluginfakes.FakePluginRegistry{
|
||||
Store: map[string]*plugins.Plugin{
|
||||
p1.ID: p1,
|
||||
},
|
||||
@@ -832,7 +832,7 @@ func Test_PluginsSettings(t *testing.T) {
|
||||
for _, tc := range tcs {
|
||||
t.Run(tc.desc, func(t *testing.T) {
|
||||
server := SetupAPITestServer(t, func(hs *HTTPServer) {
|
||||
store, err := pluginstore.NewPluginStoreForTest(pluginRegistry, &fakes.FakeLoader{}, &fakes.FakeSourceRegistry{})
|
||||
store, err := pluginstore.NewPluginStoreForTest(pluginRegistry, &pluginfakes.FakeLoader{}, &pluginfakes.FakeSourceRegistry{})
|
||||
require.NoError(t, err)
|
||||
|
||||
hs.Cfg = setting.NewCfg()
|
||||
@@ -854,7 +854,7 @@ func Test_PluginsSettings(t *testing.T) {
|
||||
hs.pluginsUpdateChecker, err = updatemanager.ProvidePluginsService(
|
||||
hs.Cfg,
|
||||
hs.pluginStore,
|
||||
&fakes.FakePluginInstaller{},
|
||||
&pluginfakes.FakePluginInstaller{},
|
||||
tracing.InitializeTracerForTest(),
|
||||
kvstore.NewFakeFeatureToggles(t, true),
|
||||
pluginchecker.ProvideService(hs.managedPluginsService, provisionedplugins.NewNoop(), &pluginchecker.FakePluginPreinstall{}),
|
||||
@@ -890,7 +890,7 @@ func Test_UpdatePluginSetting(t *testing.T) {
|
||||
AutoEnabled: true,
|
||||
}, plugins.ClassExternal, plugins.NewFakeFS(),
|
||||
)
|
||||
pluginRegistry := &fakes.FakePluginRegistry{
|
||||
pluginRegistry := &pluginfakes.FakePluginRegistry{
|
||||
Store: map[string]*plugins.Plugin{
|
||||
p1.ID: p1,
|
||||
},
|
||||
@@ -902,7 +902,7 @@ func Test_UpdatePluginSetting(t *testing.T) {
|
||||
|
||||
t.Run("should return an error when trying to disable an auto-enabled plugin", func(t *testing.T) {
|
||||
server := SetupAPITestServer(t, func(hs *HTTPServer) {
|
||||
store, err := pluginstore.NewPluginStoreForTest(pluginRegistry, &fakes.FakeLoader{}, &fakes.FakeSourceRegistry{})
|
||||
store, err := pluginstore.NewPluginStoreForTest(pluginRegistry, &pluginfakes.FakeLoader{}, &pluginfakes.FakeSourceRegistry{})
|
||||
require.NoError(t, err)
|
||||
|
||||
hs.Cfg = setting.NewCfg()
|
||||
|
||||
@@ -8,14 +8,14 @@ import (
|
||||
"github.com/grafana/grafana/pkg/plugins"
|
||||
"github.com/grafana/grafana/pkg/plugins/backendplugin/coreplugin"
|
||||
"github.com/grafana/grafana/pkg/plugins/log"
|
||||
"github.com/grafana/grafana/pkg/plugins/manager/fakes"
|
||||
"github.com/grafana/grafana/pkg/plugins/manager/pluginfakes"
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
func TestCorePlugin(t *testing.T) {
|
||||
t.Run("New core plugin with empty opts should return expected values", func(t *testing.T) {
|
||||
factory := coreplugin.New(backend.ServeOpts{})
|
||||
p, err := factory("plugin", log.New("test"), fakes.InitializeNoopTracerForTest(), nil)
|
||||
p, err := factory("plugin", log.New("test"), pluginfakes.InitializeNoopTracerForTest(), nil)
|
||||
require.NoError(t, err)
|
||||
require.NotNil(t, p)
|
||||
require.NoError(t, p.Start(context.Background()))
|
||||
@@ -48,7 +48,7 @@ func TestCorePlugin(t *testing.T) {
|
||||
return nil
|
||||
}),
|
||||
})
|
||||
p, err := factory("plugin", log.New("test"), fakes.InitializeNoopTracerForTest(), nil)
|
||||
p, err := factory("plugin", log.New("test"), pluginfakes.InitializeNoopTracerForTest(), nil)
|
||||
require.NoError(t, err)
|
||||
require.NotNil(t, p)
|
||||
require.NoError(t, p.Start(context.Background()))
|
||||
|
||||
@@ -10,14 +10,14 @@ import (
|
||||
"github.com/grafana/grafana-plugin-sdk-go/backend"
|
||||
"github.com/grafana/grafana/pkg/plugins"
|
||||
"github.com/grafana/grafana/pkg/plugins/backendplugin"
|
||||
"github.com/grafana/grafana/pkg/plugins/manager/fakes"
|
||||
"github.com/grafana/grafana/pkg/plugins/manager/pluginfakes"
|
||||
"github.com/grafana/grafana/pkg/util/testutil"
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
func TestQueryData(t *testing.T) {
|
||||
t.Run("Empty registry should return not registered error", func(t *testing.T) {
|
||||
registry := fakes.NewFakePluginRegistry()
|
||||
registry := pluginfakes.NewFakePluginRegistry()
|
||||
client := ProvideService(registry)
|
||||
_, err := client.QueryData(context.Background(), &backend.QueryDataRequest{})
|
||||
require.Error(t, err)
|
||||
@@ -64,7 +64,7 @@ func TestQueryData(t *testing.T) {
|
||||
|
||||
for _, tc := range tcs {
|
||||
t.Run(fmt.Sprintf("Plugin client error %q should return expected error", tc.err), func(t *testing.T) {
|
||||
registry := fakes.NewFakePluginRegistry()
|
||||
registry := pluginfakes.NewFakePluginRegistry()
|
||||
p := &plugins.Plugin{
|
||||
JSONData: plugins.JSONData{
|
||||
ID: "grafana",
|
||||
@@ -97,7 +97,7 @@ func TestQueryData(t *testing.T) {
|
||||
|
||||
func TestCheckHealth(t *testing.T) {
|
||||
t.Run("empty plugin registry should return plugin not registered error", func(t *testing.T) {
|
||||
registry := fakes.NewFakePluginRegistry()
|
||||
registry := pluginfakes.NewFakePluginRegistry()
|
||||
client := ProvideService(registry)
|
||||
_, err := client.CheckHealth(context.Background(), &backend.CheckHealthRequest{})
|
||||
require.Error(t, err)
|
||||
@@ -130,7 +130,7 @@ func TestCheckHealth(t *testing.T) {
|
||||
|
||||
for _, tc := range tcs {
|
||||
t.Run(fmt.Sprintf("Plugin client error %q should return expected error", tc.err), func(t *testing.T) {
|
||||
registry := fakes.NewFakePluginRegistry()
|
||||
registry := pluginfakes.NewFakePluginRegistry()
|
||||
p := &plugins.Plugin{
|
||||
JSONData: plugins.JSONData{
|
||||
ID: "grafana",
|
||||
@@ -160,7 +160,7 @@ func TestCheckHealth(t *testing.T) {
|
||||
func TestIntegrationCallResource(t *testing.T) {
|
||||
testutil.SkipIntegrationTestInShortMode(t)
|
||||
|
||||
registry := fakes.NewFakePluginRegistry()
|
||||
registry := pluginfakes.NewFakePluginRegistry()
|
||||
p := &plugins.Plugin{
|
||||
JSONData: plugins.JSONData{
|
||||
ID: "pid",
|
||||
|
||||
@@ -15,7 +15,7 @@ import (
|
||||
"github.com/grafana/grafana/pkg/plugins"
|
||||
"github.com/grafana/grafana/pkg/plugins/config"
|
||||
"github.com/grafana/grafana/pkg/plugins/log"
|
||||
"github.com/grafana/grafana/pkg/plugins/manager/fakes"
|
||||
"github.com/grafana/grafana/pkg/plugins/manager/pluginfakes"
|
||||
"github.com/grafana/grafana/pkg/plugins/manager/sources"
|
||||
"github.com/grafana/grafana/pkg/plugins/repo"
|
||||
"github.com/grafana/grafana/pkg/plugins/storage"
|
||||
@@ -40,7 +40,7 @@ func TestPluginManager_Add_Remove(t *testing.T) {
|
||||
FileHeader: zip.FileHeader{Name: zipNameV1},
|
||||
}}}}
|
||||
|
||||
loader := &fakes.FakeLoader{
|
||||
loader := &pluginfakes.FakeLoader{
|
||||
LoadFunc: func(ctx context.Context, src plugins.PluginSource) ([]*plugins.Plugin, error) {
|
||||
return []*plugins.Plugin{pluginV1}, nil
|
||||
},
|
||||
@@ -49,7 +49,7 @@ func TestPluginManager_Add_Remove(t *testing.T) {
|
||||
},
|
||||
}
|
||||
|
||||
pluginRepo := &fakes.FakePluginRepo{
|
||||
pluginRepo := &pluginfakes.FakePluginRepo{
|
||||
GetPluginArchiveFunc: func(_ context.Context, id, version string, _ repo.CompatOpts) (*repo.PluginArchive, error) {
|
||||
require.Equal(t, pluginID, id)
|
||||
require.Equal(t, v1, version)
|
||||
@@ -59,7 +59,7 @@ func TestPluginManager_Add_Remove(t *testing.T) {
|
||||
},
|
||||
}
|
||||
|
||||
fs := &fakes.FakePluginStorage{
|
||||
fs := &pluginfakes.FakePluginStorage{
|
||||
ExtractFunc: func(_ context.Context, id string, _ storage.DirNameGeneratorFunc, z *zip.ReadCloser) (*storage.ExtractedPluginArchive, error) {
|
||||
require.Equal(t, pluginID, id)
|
||||
require.Equal(t, mockZipV1, z)
|
||||
@@ -71,12 +71,12 @@ func TestPluginManager_Add_Remove(t *testing.T) {
|
||||
},
|
||||
}
|
||||
|
||||
inst := New(&config.PluginManagementCfg{}, fakes.NewFakePluginRegistry(), loader, pluginRepo, fs, storage.SimpleDirNameGeneratorFunc, &fakes.FakeAuthService{})
|
||||
inst := New(&config.PluginManagementCfg{}, pluginfakes.NewFakePluginRegistry(), loader, pluginRepo, fs, storage.SimpleDirNameGeneratorFunc, &pluginfakes.FakeAuthService{})
|
||||
err := inst.Add(context.Background(), pluginID, v1, testCompatOpts())
|
||||
require.NoError(t, err)
|
||||
|
||||
t.Run("Won't add if already exists", func(t *testing.T) {
|
||||
inst.pluginRegistry = &fakes.FakePluginRegistry{
|
||||
inst.pluginRegistry = &pluginfakes.FakePluginRegistry{
|
||||
Store: map[string]*plugins.Plugin{
|
||||
pluginID: pluginV1,
|
||||
},
|
||||
@@ -90,7 +90,7 @@ func TestPluginManager_Add_Remove(t *testing.T) {
|
||||
|
||||
t.Run("Add from URL", func(t *testing.T) {
|
||||
url := "https://grafanaplugins.com"
|
||||
pluginRepo := &fakes.FakePluginRepo{
|
||||
pluginRepo := &pluginfakes.FakePluginRepo{
|
||||
GetPluginArchiveByURLFunc: func(_ context.Context, archiveURL string, _ repo.CompatOpts) (*repo.PluginArchive, error) {
|
||||
require.Equal(t, pluginID, pluginID)
|
||||
require.Equal(t, url, archiveURL)
|
||||
@@ -99,7 +99,7 @@ func TestPluginManager_Add_Remove(t *testing.T) {
|
||||
}, nil
|
||||
},
|
||||
}
|
||||
inst := New(&config.PluginManagementCfg{}, fakes.NewFakePluginRegistry(), loader, pluginRepo, fs, storage.SimpleDirNameGeneratorFunc, &fakes.FakeAuthService{})
|
||||
inst := New(&config.PluginManagementCfg{}, pluginfakes.NewFakePluginRegistry(), loader, pluginRepo, fs, storage.SimpleDirNameGeneratorFunc, &pluginfakes.FakeAuthService{})
|
||||
err := inst.Add(context.Background(), pluginID, v1, plugins.NewAddOpts(v1, runtime.GOOS, runtime.GOARCH, url))
|
||||
require.NoError(t, err)
|
||||
})
|
||||
@@ -183,14 +183,14 @@ func TestPluginManager_Add_Remove(t *testing.T) {
|
||||
})
|
||||
|
||||
t.Run("Removing an existing plugin", func(t *testing.T) {
|
||||
inst.pluginRegistry = &fakes.FakePluginRegistry{
|
||||
inst.pluginRegistry = &pluginfakes.FakePluginRegistry{
|
||||
Store: map[string]*plugins.Plugin{
|
||||
pluginID: pluginV1,
|
||||
},
|
||||
}
|
||||
|
||||
var unloadedPlugins []string
|
||||
inst.pluginLoader = &fakes.FakeLoader{
|
||||
inst.pluginLoader = &pluginfakes.FakeLoader{
|
||||
UnloadFunc: func(_ context.Context, p *plugins.Plugin) (*plugins.Plugin, error) {
|
||||
unloadedPlugins = append(unloadedPlugins, p.ID)
|
||||
return p, nil
|
||||
@@ -203,7 +203,7 @@ func TestPluginManager_Add_Remove(t *testing.T) {
|
||||
require.Equal(t, []string{pluginID}, unloadedPlugins)
|
||||
|
||||
t.Run("Won't remove if not exists", func(t *testing.T) {
|
||||
inst.pluginRegistry = fakes.NewFakePluginRegistry()
|
||||
inst.pluginRegistry = pluginfakes.NewFakePluginRegistry()
|
||||
|
||||
err = inst.Remove(context.Background(), pluginID, v2)
|
||||
require.Equal(t, plugins.ErrPluginNotInstalled, err)
|
||||
@@ -216,13 +216,13 @@ func TestPluginManager_Add_Remove(t *testing.T) {
|
||||
plugin.Info.Version = "1.0.0"
|
||||
})
|
||||
|
||||
reg := &fakes.FakePluginRegistry{
|
||||
reg := &pluginfakes.FakePluginRegistry{
|
||||
Store: map[string]*plugins.Plugin{
|
||||
testPluginID: p,
|
||||
},
|
||||
}
|
||||
|
||||
pm := New(&config.PluginManagementCfg{}, reg, &fakes.FakeLoader{}, &fakes.FakePluginRepo{}, &fakes.FakePluginStorage{}, storage.SimpleDirNameGeneratorFunc, &fakes.FakeAuthService{})
|
||||
pm := New(&config.PluginManagementCfg{}, reg, &pluginfakes.FakeLoader{}, &pluginfakes.FakePluginRepo{}, &pluginfakes.FakePluginStorage{}, storage.SimpleDirNameGeneratorFunc, &pluginfakes.FakeAuthService{})
|
||||
err := pm.Add(context.Background(), p.ID, "3.2.0", testCompatOpts())
|
||||
require.ErrorIs(t, err, plugins.ErrInstallCorePlugin)
|
||||
|
||||
@@ -243,7 +243,7 @@ func TestPluginManager_Add_Remove(t *testing.T) {
|
||||
)
|
||||
|
||||
var loadedPaths []string
|
||||
loader := &fakes.FakeLoader{
|
||||
loader := &pluginfakes.FakeLoader{
|
||||
LoadFunc: func(ctx context.Context, src plugins.PluginSource) ([]*plugins.Plugin, error) {
|
||||
// Check if this is a LocalSource and get its paths
|
||||
if localSrc, ok := src.(*sources.LocalSource); ok {
|
||||
@@ -253,7 +253,7 @@ func TestPluginManager_Add_Remove(t *testing.T) {
|
||||
},
|
||||
}
|
||||
|
||||
pluginRepo := &fakes.FakePluginRepo{
|
||||
pluginRepo := &pluginfakes.FakePluginRepo{
|
||||
GetPluginArchiveFunc: func(_ context.Context, id, version string, _ repo.CompatOpts) (*repo.PluginArchive, error) {
|
||||
return &repo.PluginArchive{File: &zip.ReadCloser{Reader: zip.Reader{File: []*zip.File{{
|
||||
FileHeader: zip.FileHeader{Name: fmt.Sprintf("%s.zip", id)},
|
||||
@@ -261,7 +261,7 @@ func TestPluginManager_Add_Remove(t *testing.T) {
|
||||
},
|
||||
}
|
||||
|
||||
fs := &fakes.FakePluginStorage{
|
||||
fs := &pluginfakes.FakePluginStorage{
|
||||
ExtractFunc: func(_ context.Context, id string, _ storage.DirNameGeneratorFunc, z *zip.ReadCloser) (*storage.ExtractedPluginArchive, error) {
|
||||
switch id {
|
||||
case p1:
|
||||
@@ -287,7 +287,7 @@ func TestPluginManager_Add_Remove(t *testing.T) {
|
||||
},
|
||||
}
|
||||
|
||||
inst := New(&config.PluginManagementCfg{}, fakes.NewFakePluginRegistry(), loader, pluginRepo, fs, storage.SimpleDirNameGeneratorFunc, &fakes.FakeAuthService{})
|
||||
inst := New(&config.PluginManagementCfg{}, pluginfakes.NewFakePluginRegistry(), loader, pluginRepo, fs, storage.SimpleDirNameGeneratorFunc, &pluginfakes.FakeAuthService{})
|
||||
err := inst.Add(context.Background(), p3, "", testCompatOpts())
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, []string{p1Zip, p2Zip, p3Zip}, loadedPaths)
|
||||
@@ -300,7 +300,7 @@ func TestPluginManager_Add_Remove(t *testing.T) {
|
||||
)
|
||||
|
||||
var loadedPaths []string
|
||||
loader := &fakes.FakeLoader{
|
||||
loader := &pluginfakes.FakeLoader{
|
||||
LoadFunc: func(ctx context.Context, src plugins.PluginSource) ([]*plugins.Plugin, error) {
|
||||
// Check if this is a LocalSource and get its paths
|
||||
if localSrc, ok := src.(*sources.LocalSource); ok {
|
||||
@@ -310,7 +310,7 @@ func TestPluginManager_Add_Remove(t *testing.T) {
|
||||
},
|
||||
}
|
||||
|
||||
pluginRepo := &fakes.FakePluginRepo{
|
||||
pluginRepo := &pluginfakes.FakePluginRepo{
|
||||
GetPluginArchiveFunc: func(_ context.Context, id, version string, _ repo.CompatOpts) (*repo.PluginArchive, error) {
|
||||
return &repo.PluginArchive{File: &zip.ReadCloser{Reader: zip.Reader{File: []*zip.File{{
|
||||
FileHeader: zip.FileHeader{Name: fmt.Sprintf("%s.zip", id)},
|
||||
@@ -318,7 +318,7 @@ func TestPluginManager_Add_Remove(t *testing.T) {
|
||||
},
|
||||
}
|
||||
|
||||
fs := &fakes.FakePluginStorage{
|
||||
fs := &pluginfakes.FakePluginStorage{
|
||||
ExtractFunc: func(_ context.Context, id string, _ storage.DirNameGeneratorFunc, z *zip.ReadCloser) (*storage.ExtractedPluginArchive, error) {
|
||||
switch id {
|
||||
case p1:
|
||||
@@ -339,7 +339,7 @@ func TestPluginManager_Add_Remove(t *testing.T) {
|
||||
},
|
||||
}
|
||||
|
||||
inst := New(&config.PluginManagementCfg{}, fakes.NewFakePluginRegistry(), loader, pluginRepo, fs, storage.SimpleDirNameGeneratorFunc, &fakes.FakeAuthService{})
|
||||
inst := New(&config.PluginManagementCfg{}, pluginfakes.NewFakePluginRegistry(), loader, pluginRepo, fs, storage.SimpleDirNameGeneratorFunc, &pluginfakes.FakeAuthService{})
|
||||
err := inst.Add(context.Background(), p1, "", testCompatOpts())
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, []string{p2Zip, p1Zip}, loadedPaths)
|
||||
@@ -347,14 +347,14 @@ func TestPluginManager_Add_Remove(t *testing.T) {
|
||||
|
||||
t.Run("Plugin can successfully install even if dependency plugin is already installed", func(t *testing.T) {
|
||||
const pluginDependencyID = "test-plugin-dependency"
|
||||
reg := &fakes.FakePluginRegistry{
|
||||
reg := &pluginfakes.FakePluginRegistry{
|
||||
Store: map[string]*plugins.Plugin{
|
||||
pluginDependencyID: createPlugin(t, pluginDependencyID, plugins.ClassExternal, false, false),
|
||||
},
|
||||
}
|
||||
|
||||
var loadedPaths []string
|
||||
loader := &fakes.FakeLoader{
|
||||
loader := &pluginfakes.FakeLoader{
|
||||
LoadFunc: func(ctx context.Context, src plugins.PluginSource) ([]*plugins.Plugin, error) {
|
||||
// Check if this is a LocalSource and get its paths
|
||||
if localSrc, ok := src.(*sources.LocalSource); ok {
|
||||
@@ -364,7 +364,7 @@ func TestPluginManager_Add_Remove(t *testing.T) {
|
||||
},
|
||||
}
|
||||
|
||||
pluginRepo := &fakes.FakePluginRepo{
|
||||
pluginRepo := &pluginfakes.FakePluginRepo{
|
||||
GetPluginArchiveFunc: func(_ context.Context, id, version string, _ repo.CompatOpts) (*repo.PluginArchive, error) {
|
||||
return &repo.PluginArchive{File: &zip.ReadCloser{Reader: zip.Reader{File: []*zip.File{{
|
||||
FileHeader: zip.FileHeader{Name: fmt.Sprintf("%s.zip", id)},
|
||||
@@ -372,7 +372,7 @@ func TestPluginManager_Add_Remove(t *testing.T) {
|
||||
},
|
||||
}
|
||||
|
||||
fs := &fakes.FakePluginStorage{
|
||||
fs := &pluginfakes.FakePluginStorage{
|
||||
ExtractFunc: func(_ context.Context, id string, _ storage.DirNameGeneratorFunc, z *zip.ReadCloser) (*storage.ExtractedPluginArchive, error) {
|
||||
switch id {
|
||||
case testPluginID:
|
||||
@@ -387,7 +387,7 @@ func TestPluginManager_Add_Remove(t *testing.T) {
|
||||
},
|
||||
}
|
||||
|
||||
inst := New(&config.PluginManagementCfg{}, reg, loader, pluginRepo, fs, storage.SimpleDirNameGeneratorFunc, &fakes.FakeAuthService{})
|
||||
inst := New(&config.PluginManagementCfg{}, reg, loader, pluginRepo, fs, storage.SimpleDirNameGeneratorFunc, &pluginfakes.FakeAuthService{})
|
||||
err := inst.Add(context.Background(), testPluginID, "", testCompatOpts())
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, []string{"test-plugin.zip"}, loadedPaths)
|
||||
@@ -401,7 +401,7 @@ func TestPluginManager_Add_Remove(t *testing.T) {
|
||||
)
|
||||
|
||||
var loadedPaths []string
|
||||
loader := &fakes.FakeLoader{
|
||||
loader := &pluginfakes.FakeLoader{
|
||||
LoadFunc: func(ctx context.Context, src plugins.PluginSource) ([]*plugins.Plugin, error) {
|
||||
// Check if this is a LocalSource and get its paths
|
||||
if localSrc, ok := src.(*sources.LocalSource); ok {
|
||||
@@ -415,7 +415,7 @@ func TestPluginManager_Add_Remove(t *testing.T) {
|
||||
urlMethodCalled := false
|
||||
catalogMethodCalled := false
|
||||
|
||||
pluginRepo := &fakes.FakePluginRepo{
|
||||
pluginRepo := &pluginfakes.FakePluginRepo{
|
||||
GetPluginArchiveByURLFunc: func(_ context.Context, url string, _ repo.CompatOpts) (*repo.PluginArchive, error) {
|
||||
urlMethodCalled = true
|
||||
require.Equal(t, parentURL, url, "URL method should only be called for parent plugin")
|
||||
@@ -432,7 +432,7 @@ func TestPluginManager_Add_Remove(t *testing.T) {
|
||||
},
|
||||
}
|
||||
|
||||
fs := &fakes.FakePluginStorage{
|
||||
fs := &pluginfakes.FakePluginStorage{
|
||||
ExtractFunc: func(_ context.Context, id string, _ storage.DirNameGeneratorFunc, z *zip.ReadCloser) (*storage.ExtractedPluginArchive, error) {
|
||||
switch id {
|
||||
case parentPluginID:
|
||||
@@ -452,7 +452,7 @@ func TestPluginManager_Add_Remove(t *testing.T) {
|
||||
},
|
||||
}
|
||||
|
||||
inst := New(&config.PluginManagementCfg{}, fakes.NewFakePluginRegistry(), loader, pluginRepo, fs, storage.SimpleDirNameGeneratorFunc, &fakes.FakeAuthService{})
|
||||
inst := New(&config.PluginManagementCfg{}, pluginfakes.NewFakePluginRegistry(), loader, pluginRepo, fs, storage.SimpleDirNameGeneratorFunc, &pluginfakes.FakeAuthService{})
|
||||
err := inst.Add(context.Background(), parentPluginID, "", plugins.NewAddOpts("10.0.0", runtime.GOOS, runtime.GOARCH, parentURL))
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, []string{"dependency-plugin.zip", "parent-plugin.zip"}, loadedPaths)
|
||||
@@ -474,7 +474,7 @@ func createPlugin(t *testing.T, pluginID string, class plugins.Class, managed, b
|
||||
}
|
||||
p.SetLogger(log.NewTestLogger())
|
||||
if p.Backend {
|
||||
p.RegisterClient(&fakes.FakePluginClient{
|
||||
p.RegisterClient(&pluginfakes.FakePluginClient{
|
||||
ID: pluginID,
|
||||
Managed: managed,
|
||||
Log: p.Logger(),
|
||||
@@ -517,13 +517,13 @@ func TestPluginInstaller_Removal(t *testing.T) {
|
||||
plugin.FS = localFS
|
||||
})
|
||||
|
||||
registry := &fakes.FakePluginRegistry{
|
||||
registry := &pluginfakes.FakePluginRegistry{
|
||||
Store: map[string]*plugins.Plugin{
|
||||
"localfs-plugin": pluginV1,
|
||||
},
|
||||
}
|
||||
|
||||
loader := &fakes.FakeLoader{
|
||||
loader := &pluginfakes.FakeLoader{
|
||||
UnloadFunc: func(_ context.Context, p *plugins.Plugin) (*plugins.Plugin, error) {
|
||||
return p, nil
|
||||
},
|
||||
@@ -532,7 +532,7 @@ func TestPluginInstaller_Removal(t *testing.T) {
|
||||
_, err = os.Stat(pluginDir)
|
||||
require.NoError(t, err)
|
||||
|
||||
inst := New(&config.PluginManagementCfg{}, registry, loader, &fakes.FakePluginRepo{}, &fakes.FakePluginStorage{}, storage.SimpleDirNameGeneratorFunc, &fakes.FakeAuthService{})
|
||||
inst := New(&config.PluginManagementCfg{}, registry, loader, &pluginfakes.FakePluginRepo{}, &pluginfakes.FakePluginStorage{}, storage.SimpleDirNameGeneratorFunc, &pluginfakes.FakeAuthService{})
|
||||
err = inst.Remove(context.Background(), "localfs-plugin", "1.0.0")
|
||||
require.NoError(t, err)
|
||||
|
||||
@@ -565,13 +565,13 @@ func TestPluginInstaller_Removal(t *testing.T) {
|
||||
plugin.FS = staticFS
|
||||
})
|
||||
|
||||
registry := &fakes.FakePluginRegistry{
|
||||
registry := &pluginfakes.FakePluginRegistry{
|
||||
Store: map[string]*plugins.Plugin{
|
||||
"staticfs-plugin": pluginV1,
|
||||
},
|
||||
}
|
||||
|
||||
loader := &fakes.FakeLoader{
|
||||
loader := &pluginfakes.FakeLoader{
|
||||
UnloadFunc: func(_ context.Context, p *plugins.Plugin) (*plugins.Plugin, error) {
|
||||
return p, nil
|
||||
},
|
||||
@@ -580,7 +580,7 @@ func TestPluginInstaller_Removal(t *testing.T) {
|
||||
_, err = os.Stat(pluginDir)
|
||||
require.NoError(t, err)
|
||||
|
||||
inst := New(&config.PluginManagementCfg{}, registry, loader, &fakes.FakePluginRepo{}, &fakes.FakePluginStorage{}, storage.SimpleDirNameGeneratorFunc, &fakes.FakeAuthService{})
|
||||
inst := New(&config.PluginManagementCfg{}, registry, loader, &pluginfakes.FakePluginRepo{}, &pluginfakes.FakePluginStorage{}, storage.SimpleDirNameGeneratorFunc, &pluginfakes.FakeAuthService{})
|
||||
err = inst.Remove(context.Background(), "staticfs-plugin", "1.0.0")
|
||||
require.NoError(t, err)
|
||||
|
||||
|
||||
@@ -13,12 +13,12 @@ import (
|
||||
|
||||
"github.com/grafana/grafana/pkg/plugins"
|
||||
"github.com/grafana/grafana/pkg/plugins/config"
|
||||
"github.com/grafana/grafana/pkg/plugins/manager/fakes"
|
||||
"github.com/grafana/grafana/pkg/plugins/manager/pipeline/bootstrap"
|
||||
"github.com/grafana/grafana/pkg/plugins/manager/pipeline/discovery"
|
||||
"github.com/grafana/grafana/pkg/plugins/manager/pipeline/initialization"
|
||||
"github.com/grafana/grafana/pkg/plugins/manager/pipeline/termination"
|
||||
"github.com/grafana/grafana/pkg/plugins/manager/pipeline/validation"
|
||||
"github.com/grafana/grafana/pkg/plugins/manager/pluginfakes"
|
||||
"github.com/grafana/grafana/pkg/plugins/manager/sources"
|
||||
"github.com/grafana/grafana/pkg/services/org"
|
||||
"github.com/grafana/grafana/pkg/services/pluginsintegration/pluginerrs"
|
||||
@@ -452,7 +452,7 @@ func TestLoader_Load(t *testing.T) {
|
||||
}
|
||||
|
||||
t.Run("Simple", func(t *testing.T) {
|
||||
src := &fakes.FakePluginSource{
|
||||
src := &pluginfakes.FakePluginSource{
|
||||
PluginClassFunc: func(ctx context.Context) plugins.Class {
|
||||
return plugins.ClassExternal
|
||||
},
|
||||
@@ -472,13 +472,13 @@ func TestLoader_Load(t *testing.T) {
|
||||
var steps []string
|
||||
l := New(
|
||||
zeroCfg,
|
||||
&fakes.FakeDiscoverer{
|
||||
&pluginfakes.FakeDiscoverer{
|
||||
DiscoverFunc: func(ctx context.Context, s plugins.PluginSource) ([]*plugins.FoundBundle, error) {
|
||||
require.Equal(t, src, s)
|
||||
steps = append(steps, "discover")
|
||||
return []*plugins.FoundBundle{{Primary: plugins.FoundPlugin{JSONData: pluginJSON}}}, nil
|
||||
},
|
||||
}, &fakes.FakeBootstrapper{
|
||||
}, &pluginfakes.FakeBootstrapper{
|
||||
BootstrapFunc: func(ctx context.Context, s plugins.PluginSource, b *plugins.FoundBundle) ([]*plugins.Plugin, error) {
|
||||
require.Equal(t, b.Primary.JSONData, pluginJSON)
|
||||
require.Equal(t, src, s)
|
||||
@@ -486,19 +486,19 @@ func TestLoader_Load(t *testing.T) {
|
||||
steps = append(steps, "bootstrap")
|
||||
return []*plugins.Plugin{plugin}, nil
|
||||
},
|
||||
}, &fakes.FakeValidator{ValidateFunc: func(ctx context.Context, ps *plugins.Plugin) error {
|
||||
}, &pluginfakes.FakeValidator{ValidateFunc: func(ctx context.Context, ps *plugins.Plugin) error {
|
||||
require.Equal(t, plugin, ps)
|
||||
|
||||
steps = append(steps, "validate")
|
||||
return nil
|
||||
}},
|
||||
&fakes.FakeInitializer{
|
||||
&pluginfakes.FakeInitializer{
|
||||
IntializeFunc: func(ctx context.Context, ps *plugins.Plugin) (*plugins.Plugin, error) {
|
||||
require.Equal(t, ps.JSONData, pluginJSON)
|
||||
steps = append(steps, "initialize")
|
||||
return ps, nil
|
||||
},
|
||||
}, &fakes.FakeTerminator{}, et)
|
||||
}, &pluginfakes.FakeTerminator{}, et)
|
||||
|
||||
got, err := l.Load(context.Background(), src)
|
||||
require.NoError(t, err)
|
||||
@@ -507,7 +507,7 @@ func TestLoader_Load(t *testing.T) {
|
||||
})
|
||||
|
||||
t.Run("With error", func(t *testing.T) {
|
||||
src := &fakes.FakePluginSource{
|
||||
src := &pluginfakes.FakePluginSource{
|
||||
PluginClassFunc: func(ctx context.Context) plugins.Class {
|
||||
return plugins.ClassExternal
|
||||
},
|
||||
@@ -527,13 +527,13 @@ func TestLoader_Load(t *testing.T) {
|
||||
var steps []string
|
||||
l := New(
|
||||
zeroCfg,
|
||||
&fakes.FakeDiscoverer{
|
||||
&pluginfakes.FakeDiscoverer{
|
||||
DiscoverFunc: func(ctx context.Context, s plugins.PluginSource) ([]*plugins.FoundBundle, error) {
|
||||
require.Equal(t, src, s)
|
||||
steps = append(steps, "discover")
|
||||
return []*plugins.FoundBundle{{Primary: plugins.FoundPlugin{JSONData: pluginJSON}}}, nil
|
||||
},
|
||||
}, &fakes.FakeBootstrapper{
|
||||
}, &pluginfakes.FakeBootstrapper{
|
||||
BootstrapFunc: func(ctx context.Context, s plugins.PluginSource, b *plugins.FoundBundle) ([]*plugins.Plugin, error) {
|
||||
require.Equal(t, b.Primary.JSONData, pluginJSON)
|
||||
require.Equal(t, src, s)
|
||||
@@ -541,19 +541,19 @@ func TestLoader_Load(t *testing.T) {
|
||||
steps = append(steps, "bootstrap")
|
||||
return []*plugins.Plugin{plugin}, nil
|
||||
},
|
||||
}, &fakes.FakeValidator{ValidateFunc: func(ctx context.Context, ps *plugins.Plugin) error {
|
||||
}, &pluginfakes.FakeValidator{ValidateFunc: func(ctx context.Context, ps *plugins.Plugin) error {
|
||||
require.Equal(t, plugin, ps)
|
||||
|
||||
steps = append(steps, "validate")
|
||||
return errors.New("validation error")
|
||||
}},
|
||||
&fakes.FakeInitializer{
|
||||
&pluginfakes.FakeInitializer{
|
||||
IntializeFunc: func(ctx context.Context, ps *plugins.Plugin) (*plugins.Plugin, error) {
|
||||
require.Equal(t, ps.JSONData, pluginJSON)
|
||||
steps = append(steps, "initialize")
|
||||
return ps, nil
|
||||
},
|
||||
}, &fakes.FakeTerminator{}, et)
|
||||
}, &pluginfakes.FakeTerminator{}, et)
|
||||
|
||||
got, err := l.Load(context.Background(), src)
|
||||
require.NoError(t, err)
|
||||
@@ -566,7 +566,7 @@ func TestLoader_Load(t *testing.T) {
|
||||
})
|
||||
|
||||
t.Run("Cleans up a previous error", func(t *testing.T) {
|
||||
src := &fakes.FakePluginSource{
|
||||
src := &pluginfakes.FakePluginSource{
|
||||
PluginClassFunc: func(ctx context.Context) plugins.Class {
|
||||
return plugins.ClassExternal
|
||||
},
|
||||
@@ -587,13 +587,13 @@ func TestLoader_Load(t *testing.T) {
|
||||
var steps []string
|
||||
l := New(
|
||||
zeroCfg,
|
||||
&fakes.FakeDiscoverer{
|
||||
&pluginfakes.FakeDiscoverer{
|
||||
DiscoverFunc: func(ctx context.Context, s plugins.PluginSource) ([]*plugins.FoundBundle, error) {
|
||||
require.Equal(t, src, s)
|
||||
steps = append(steps, "discover")
|
||||
return []*plugins.FoundBundle{{Primary: plugins.FoundPlugin{JSONData: pluginJSON}}}, nil
|
||||
},
|
||||
}, &fakes.FakeBootstrapper{
|
||||
}, &pluginfakes.FakeBootstrapper{
|
||||
BootstrapFunc: func(ctx context.Context, s plugins.PluginSource, b *plugins.FoundBundle) ([]*plugins.Plugin, error) {
|
||||
require.Equal(t, b.Primary.JSONData, pluginJSON)
|
||||
require.Equal(t, src, s)
|
||||
@@ -601,19 +601,19 @@ func TestLoader_Load(t *testing.T) {
|
||||
steps = append(steps, "bootstrap")
|
||||
return []*plugins.Plugin{plugin}, nil
|
||||
},
|
||||
}, &fakes.FakeValidator{ValidateFunc: func(ctx context.Context, ps *plugins.Plugin) error {
|
||||
}, &pluginfakes.FakeValidator{ValidateFunc: func(ctx context.Context, ps *plugins.Plugin) error {
|
||||
require.Equal(t, plugin, ps)
|
||||
|
||||
steps = append(steps, "validate")
|
||||
return nil
|
||||
}},
|
||||
&fakes.FakeInitializer{
|
||||
&pluginfakes.FakeInitializer{
|
||||
IntializeFunc: func(ctx context.Context, ps *plugins.Plugin) (*plugins.Plugin, error) {
|
||||
require.Equal(t, ps.JSONData, pluginJSON)
|
||||
steps = append(steps, "initialize")
|
||||
return ps, nil
|
||||
},
|
||||
}, &fakes.FakeTerminator{}, et)
|
||||
}, &pluginfakes.FakeTerminator{}, et)
|
||||
|
||||
got, err := l.Load(context.Background(), src)
|
||||
require.NoError(t, err)
|
||||
@@ -644,11 +644,11 @@ func TestLoader_Unload(t *testing.T) {
|
||||
for _, tc := range tcs {
|
||||
l := New(
|
||||
&config.PluginManagementCfg{},
|
||||
&fakes.FakeDiscoverer{},
|
||||
&fakes.FakeBootstrapper{},
|
||||
&fakes.FakeValidator{},
|
||||
&fakes.FakeInitializer{},
|
||||
&fakes.FakeTerminator{
|
||||
&pluginfakes.FakeDiscoverer{},
|
||||
&pluginfakes.FakeBootstrapper{},
|
||||
&pluginfakes.FakeValidator{},
|
||||
&pluginfakes.FakeInitializer{},
|
||||
&pluginfakes.FakeTerminator{
|
||||
TerminateFunc: func(ctx context.Context, p *plugins.Plugin) (*plugins.Plugin, error) {
|
||||
require.Equal(t, plugin, p)
|
||||
return p, tc.expectedErr
|
||||
|
||||
@@ -9,7 +9,7 @@ import (
|
||||
"github.com/grafana/grafana/pkg/plugins"
|
||||
"github.com/grafana/grafana/pkg/plugins/config"
|
||||
"github.com/grafana/grafana/pkg/plugins/log"
|
||||
"github.com/grafana/grafana/pkg/plugins/manager/fakes"
|
||||
"github.com/grafana/grafana/pkg/plugins/manager/pluginfakes"
|
||||
)
|
||||
|
||||
func TestSetDefaultNavURL(t *testing.T) {
|
||||
@@ -98,7 +98,7 @@ func TestTemplateDecorateFunc(t *testing.T) {
|
||||
func Test_configureAppChildPlugin(t *testing.T) {
|
||||
t.Run("Child plugin will inherit parent version information when version is empty", func(t *testing.T) {
|
||||
child := &plugins.Plugin{
|
||||
FS: fakes.NewFakePluginFS("c:\\grafana\\public\\app\\plugins\\app\\testdata-app\\datasources\\datasource"),
|
||||
FS: pluginfakes.NewFakePluginFS("c:\\grafana\\public\\app\\plugins\\app\\testdata-app\\datasources\\datasource"),
|
||||
}
|
||||
parent := &plugins.Plugin{
|
||||
JSONData: plugins.JSONData{
|
||||
@@ -107,7 +107,7 @@ func Test_configureAppChildPlugin(t *testing.T) {
|
||||
Info: plugins.Info{Version: "1.0.0"},
|
||||
},
|
||||
Class: plugins.ClassCore,
|
||||
FS: fakes.NewFakePluginFS("c:\\grafana\\public\\app\\plugins\\app\\testdata-app"),
|
||||
FS: pluginfakes.NewFakePluginFS("c:\\grafana\\public\\app\\plugins\\app\\testdata-app"),
|
||||
BaseURL: "public/app/plugins/app/testdata-app",
|
||||
}
|
||||
|
||||
@@ -119,7 +119,7 @@ func Test_configureAppChildPlugin(t *testing.T) {
|
||||
|
||||
t.Run("Child plugin will not inherit parent version information when version is non-empty", func(t *testing.T) {
|
||||
child := &plugins.Plugin{
|
||||
FS: fakes.NewFakePluginFS("/plugins/parent-app/child-panel"),
|
||||
FS: pluginfakes.NewFakePluginFS("/plugins/parent-app/child-panel"),
|
||||
JSONData: plugins.JSONData{
|
||||
Info: plugins.Info{Version: "2.0.2"},
|
||||
},
|
||||
@@ -131,7 +131,7 @@ func Test_configureAppChildPlugin(t *testing.T) {
|
||||
Info: plugins.Info{Version: "2.0.0"},
|
||||
},
|
||||
Class: plugins.ClassExternal,
|
||||
FS: fakes.NewFakePluginFS("/plugins/parent-app"),
|
||||
FS: pluginfakes.NewFakePluginFS("/plugins/parent-app"),
|
||||
BaseURL: "plugins/parent-app",
|
||||
}
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@ import (
|
||||
"github.com/grafana/grafana/pkg/plugins"
|
||||
"github.com/grafana/grafana/pkg/plugins/backendplugin"
|
||||
"github.com/grafana/grafana/pkg/plugins/log"
|
||||
"github.com/grafana/grafana/pkg/plugins/manager/fakes"
|
||||
"github.com/grafana/grafana/pkg/plugins/manager/pluginfakes"
|
||||
"github.com/stretchr/testify/require"
|
||||
"go.opentelemetry.io/otel/trace"
|
||||
)
|
||||
@@ -29,7 +29,7 @@ func TestInitializer_Initialize(t *testing.T) {
|
||||
Class: plugins.ClassCore,
|
||||
}
|
||||
|
||||
stepFunc := BackendClientInitStep(&fakeEnvVarsProvider{}, &fakeBackendProvider{plugin: p}, fakes.InitializeNoopTracerForTest())
|
||||
stepFunc := BackendClientInitStep(&fakeEnvVarsProvider{}, &fakeBackendProvider{plugin: p}, pluginfakes.InitializeNoopTracerForTest())
|
||||
|
||||
var err error
|
||||
p, err = stepFunc(context.Background(), p)
|
||||
@@ -53,7 +53,7 @@ func TestInitializer_Initialize(t *testing.T) {
|
||||
Class: plugins.ClassExternal,
|
||||
}
|
||||
|
||||
stepFunc := BackendClientInitStep(&fakeEnvVarsProvider{}, &fakeBackendProvider{plugin: p}, fakes.InitializeNoopTracerForTest())
|
||||
stepFunc := BackendClientInitStep(&fakeEnvVarsProvider{}, &fakeBackendProvider{plugin: p}, pluginfakes.InitializeNoopTracerForTest())
|
||||
|
||||
var err error
|
||||
p, err = stepFunc(context.Background(), p)
|
||||
@@ -73,7 +73,7 @@ func TestInitializer_Initialize(t *testing.T) {
|
||||
|
||||
i := BackendClientInitStep(&fakeEnvVarsProvider{}, &fakeBackendProvider{
|
||||
plugin: p,
|
||||
}, fakes.InitializeNoopTracerForTest())
|
||||
}, pluginfakes.InitializeNoopTracerForTest())
|
||||
|
||||
var err error
|
||||
p, err = i(context.Background(), p)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package fakes
|
||||
package pluginfakes
|
||||
|
||||
import (
|
||||
"archive/zip"
|
||||
@@ -10,7 +10,7 @@ import (
|
||||
"github.com/grafana/grafana/pkg/plugins"
|
||||
"github.com/grafana/grafana/pkg/plugins/backendplugin"
|
||||
"github.com/grafana/grafana/pkg/plugins/log"
|
||||
"github.com/grafana/grafana/pkg/plugins/manager/fakes"
|
||||
"github.com/grafana/grafana/pkg/plugins/manager/pluginfakes"
|
||||
)
|
||||
|
||||
func TestProcessManager_Start(t *testing.T) {
|
||||
@@ -62,7 +62,7 @@ func TestProcessManager_Start(t *testing.T) {
|
||||
t.Run(tc.name, func(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
bp := fakes.NewFakeBackendPlugin(tc.managed)
|
||||
bp := pluginfakes.NewFakeBackendPlugin(tc.managed)
|
||||
p := createPlugin(t, bp, func(plugin *plugins.Plugin) {
|
||||
plugin.Backend = tc.backend
|
||||
plugin.Error = tc.Error
|
||||
@@ -85,7 +85,7 @@ func TestProcessManager_Start(t *testing.T) {
|
||||
t.Run("Won't stop the plugin if the context is cancelled", func(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
bp := fakes.NewFakeBackendPlugin(true)
|
||||
bp := pluginfakes.NewFakeBackendPlugin(true)
|
||||
p := createPlugin(t, bp, func(plugin *plugins.Plugin) {
|
||||
plugin.Backend = true
|
||||
})
|
||||
@@ -113,7 +113,7 @@ func TestProcessManager_Stop(t *testing.T) {
|
||||
|
||||
pluginID := "test-datasource"
|
||||
|
||||
bp := fakes.NewFakeBackendPlugin(true)
|
||||
bp := pluginfakes.NewFakeBackendPlugin(true)
|
||||
p := createPlugin(t, bp, func(plugin *plugins.Plugin) {
|
||||
plugin.ID = pluginID
|
||||
plugin.Backend = true
|
||||
@@ -134,7 +134,7 @@ func TestProcessManager_ManagedBackendPluginLifecycle(t *testing.T) {
|
||||
|
||||
t.Run("When plugin process is killed, the process is restarted", func(t *testing.T) {
|
||||
t.Parallel()
|
||||
bp := fakes.NewFakeBackendPlugin(true)
|
||||
bp := pluginfakes.NewFakeBackendPlugin(true)
|
||||
p := createPlugin(t, bp, func(plugin *plugins.Plugin) {
|
||||
plugin.Backend = true
|
||||
})
|
||||
|
||||
@@ -15,7 +15,7 @@ import (
|
||||
|
||||
"github.com/grafana/grafana/pkg/plugins"
|
||||
"github.com/grafana/grafana/pkg/plugins/config"
|
||||
"github.com/grafana/grafana/pkg/plugins/manager/fakes"
|
||||
"github.com/grafana/grafana/pkg/plugins/manager/pluginfakes"
|
||||
"github.com/grafana/grafana/pkg/plugins/manager/signature/statickey"
|
||||
)
|
||||
|
||||
@@ -164,7 +164,7 @@ func TestCalculate(t *testing.T) {
|
||||
for _, tc := range tcs {
|
||||
basePath := filepath.Join(parentDir, "testdata/non-pvt-with-root-url/plugin")
|
||||
s := provideTestServiceWithConfig(&config.PluginManagementCfg{GrafanaAppURL: tc.appURL})
|
||||
sig, err := s.Calculate(context.Background(), &fakes.FakePluginSource{
|
||||
sig, err := s.Calculate(context.Background(), &pluginfakes.FakePluginSource{
|
||||
PluginClassFunc: func(ctx context.Context) plugins.Class {
|
||||
return plugins.ClassExternal
|
||||
},
|
||||
@@ -192,7 +192,7 @@ func TestCalculate(t *testing.T) {
|
||||
|
||||
runningWindows = true
|
||||
s := provideDefaultTestService()
|
||||
sig, err := s.Calculate(context.Background(), &fakes.FakePluginSource{
|
||||
sig, err := s.Calculate(context.Background(), &pluginfakes.FakePluginSource{
|
||||
PluginClassFunc: func(ctx context.Context) plugins.Class {
|
||||
return plugins.ClassExternal
|
||||
},
|
||||
@@ -260,7 +260,7 @@ func TestCalculate(t *testing.T) {
|
||||
require.NoError(t, err)
|
||||
pfs, err = newPathSeparatorOverrideFS(string(tc.platform.separator), pfs)
|
||||
require.NoError(t, err)
|
||||
sig, err := s.Calculate(context.Background(), &fakes.FakePluginSource{
|
||||
sig, err := s.Calculate(context.Background(), &pluginfakes.FakePluginSource{
|
||||
PluginClassFunc: func(ctx context.Context) plugins.Class {
|
||||
return plugins.ClassExternal
|
||||
},
|
||||
|
||||
@@ -24,7 +24,7 @@ import (
|
||||
"github.com/grafana/grafana/pkg/infra/httpclient"
|
||||
"github.com/grafana/grafana/pkg/infra/log"
|
||||
"github.com/grafana/grafana/pkg/plugins"
|
||||
pluginfakes "github.com/grafana/grafana/pkg/plugins/manager/fakes"
|
||||
"github.com/grafana/grafana/pkg/plugins/manager/pluginfakes"
|
||||
"github.com/grafana/grafana/pkg/services/accesscontrol"
|
||||
"github.com/grafana/grafana/pkg/services/accesscontrol/actest"
|
||||
acmock "github.com/grafana/grafana/pkg/services/accesscontrol/mock"
|
||||
|
||||
@@ -16,7 +16,7 @@ import (
|
||||
"github.com/grafana/grafana/pkg/plugins"
|
||||
"github.com/grafana/grafana/pkg/plugins/backendplugin"
|
||||
"github.com/grafana/grafana/pkg/plugins/instrumentationutils"
|
||||
"github.com/grafana/grafana/pkg/plugins/manager/fakes"
|
||||
"github.com/grafana/grafana/pkg/plugins/manager/pluginfakes"
|
||||
)
|
||||
|
||||
const (
|
||||
@@ -70,7 +70,7 @@ func TestInstrumentationMiddleware(t *testing.T) {
|
||||
} {
|
||||
t.Run(string(tc.expEndpoint), func(t *testing.T) {
|
||||
promRegistry := prometheus.NewRegistry()
|
||||
pluginsRegistry := fakes.NewFakePluginRegistry()
|
||||
pluginsRegistry := pluginfakes.NewFakePluginRegistry()
|
||||
require.NoError(t, pluginsRegistry.Add(context.Background(), &plugins.Plugin{
|
||||
JSONData: plugins.JSONData{ID: pluginID, Backend: true},
|
||||
}))
|
||||
@@ -149,7 +149,7 @@ func TestInstrumentationMiddlewareStatusSource(t *testing.T) {
|
||||
pCtx := backend.PluginContext{PluginID: pluginID, PluginVersion: "1.0.0"}
|
||||
|
||||
promRegistry := prometheus.NewRegistry()
|
||||
pluginsRegistry := fakes.NewFakePluginRegistry()
|
||||
pluginsRegistry := pluginfakes.NewFakePluginRegistry()
|
||||
require.NoError(t, pluginsRegistry.Add(context.Background(), &plugins.Plugin{
|
||||
JSONData: plugins.JSONData{ID: pluginID, Backend: true},
|
||||
}))
|
||||
|
||||
@@ -18,8 +18,8 @@ import (
|
||||
"github.com/grafana/grafana/pkg/plugins/backendplugin"
|
||||
"github.com/grafana/grafana/pkg/plugins/config"
|
||||
"github.com/grafana/grafana/pkg/plugins/log"
|
||||
"github.com/grafana/grafana/pkg/plugins/manager/fakes"
|
||||
"github.com/grafana/grafana/pkg/plugins/manager/loader/angular/angularinspector"
|
||||
"github.com/grafana/grafana/pkg/plugins/manager/pluginfakes"
|
||||
"github.com/grafana/grafana/pkg/plugins/manager/process"
|
||||
"github.com/grafana/grafana/pkg/plugins/manager/registry"
|
||||
"github.com/grafana/grafana/pkg/plugins/manager/signature"
|
||||
@@ -461,9 +461,9 @@ func TestLoader_Load(t *testing.T) {
|
||||
},
|
||||
}
|
||||
for _, tt := range tests {
|
||||
reg := fakes.NewFakePluginRegistry()
|
||||
procPrvdr := fakes.NewFakeBackendProcessProvider()
|
||||
procMgr := fakes.NewFakeProcessManager()
|
||||
reg := pluginfakes.NewFakePluginRegistry()
|
||||
procPrvdr := pluginfakes.NewFakeBackendProcessProvider()
|
||||
procMgr := pluginfakes.NewFakeProcessManager()
|
||||
errTracker := pluginerrs.ProvideErrorTracker()
|
||||
|
||||
l := newLoader(t, tt.cfg, reg, procMgr, procPrvdr, errTracker, pluginassets.NewLocalProvider())
|
||||
@@ -550,16 +550,16 @@ func TestLoader_Load_ExternalRegistration(t *testing.T) {
|
||||
},
|
||||
}
|
||||
|
||||
backendFactoryProvider := fakes.NewFakeBackendProcessProvider()
|
||||
backendFactoryProvider := pluginfakes.NewFakeBackendProcessProvider()
|
||||
backendFactoryProvider.BackendFactoryFunc = func(ctx context.Context, plugin *plugins.Plugin) backendplugin.PluginFactoryFunc {
|
||||
return func(pluginID string, logger log.Logger, tracer trace.Tracer, env func() []string) (backendplugin.Plugin, error) {
|
||||
require.Equal(t, "grafana-test-datasource", pluginID)
|
||||
return &fakes.FakeBackendPlugin{}, nil
|
||||
return &pluginfakes.FakeBackendPlugin{}, nil
|
||||
}
|
||||
}
|
||||
|
||||
l := newLoaderWithOpts(t, cfg, loaderDepOpts{
|
||||
authServiceRegistry: &fakes.FakeAuthService{
|
||||
authServiceRegistry: &pluginfakes.FakeAuthService{
|
||||
Result: &auth.ExternalService{
|
||||
ClientID: "client-id",
|
||||
ClientSecret: "secretz",
|
||||
@@ -567,7 +567,7 @@ func TestLoader_Load_ExternalRegistration(t *testing.T) {
|
||||
},
|
||||
backendFactoryProvider: backendFactoryProvider,
|
||||
})
|
||||
got, err := l.Load(context.Background(), &fakes.FakePluginSource{
|
||||
got, err := l.Load(context.Background(), &pluginfakes.FakePluginSource{
|
||||
PluginClassFunc: func(ctx context.Context) plugins.Class {
|
||||
return plugins.ClassExternal
|
||||
},
|
||||
@@ -661,14 +661,14 @@ func TestLoader_Load_MultiplePlugins(t *testing.T) {
|
||||
}
|
||||
|
||||
for _, tt := range tests {
|
||||
reg := fakes.NewFakePluginRegistry()
|
||||
procPrvdr := fakes.NewFakeBackendProcessProvider()
|
||||
procMgr := fakes.NewFakeProcessManager()
|
||||
reg := pluginfakes.NewFakePluginRegistry()
|
||||
procPrvdr := pluginfakes.NewFakeBackendProcessProvider()
|
||||
procMgr := pluginfakes.NewFakeProcessManager()
|
||||
errTracker := pluginerrs.ProvideErrorTracker()
|
||||
|
||||
l := newLoader(t, tt.cfg, reg, procMgr, procPrvdr, errTracker, pluginassets.NewLocalProvider())
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
got, err := l.Load(context.Background(), &fakes.FakePluginSource{
|
||||
got, err := l.Load(context.Background(), &pluginfakes.FakePluginSource{
|
||||
PluginClassFunc: func(ctx context.Context) plugins.Class {
|
||||
return plugins.ClassExternal
|
||||
},
|
||||
@@ -774,12 +774,12 @@ func TestLoader_Load_RBACReady(t *testing.T) {
|
||||
}
|
||||
|
||||
for _, tt := range tests {
|
||||
reg := fakes.NewFakePluginRegistry()
|
||||
procPrvdr := fakes.NewFakeBackendProcessProvider()
|
||||
procMgr := fakes.NewFakeProcessManager()
|
||||
l := newLoader(t, tt.cfg, reg, procMgr, procPrvdr, fakes.NewFakeErrorTracker(), pluginassets.NewLocalProvider())
|
||||
reg := pluginfakes.NewFakePluginRegistry()
|
||||
procPrvdr := pluginfakes.NewFakeBackendProcessProvider()
|
||||
procMgr := pluginfakes.NewFakeProcessManager()
|
||||
l := newLoader(t, tt.cfg, reg, procMgr, procPrvdr, pluginfakes.NewFakeErrorTracker(), pluginassets.NewLocalProvider())
|
||||
|
||||
got, err := l.Load(context.Background(), &fakes.FakePluginSource{
|
||||
got, err := l.Load(context.Background(), &pluginfakes.FakePluginSource{
|
||||
PluginClassFunc: func(ctx context.Context) plugins.Class {
|
||||
return plugins.ClassExternal
|
||||
},
|
||||
@@ -840,12 +840,12 @@ func TestLoader_Load_Signature_RootURL(t *testing.T) {
|
||||
},
|
||||
}
|
||||
|
||||
reg := fakes.NewFakePluginRegistry()
|
||||
procPrvdr := fakes.NewFakeBackendProcessProvider()
|
||||
procMgr := fakes.NewFakeProcessManager()
|
||||
reg := pluginfakes.NewFakePluginRegistry()
|
||||
procPrvdr := pluginfakes.NewFakeBackendProcessProvider()
|
||||
procMgr := pluginfakes.NewFakeProcessManager()
|
||||
cfg := &config.PluginManagementCfg{GrafanaAppURL: defaultAppURL}
|
||||
l := newLoader(t, cfg, reg, procMgr, procPrvdr, fakes.NewFakeErrorTracker(), pluginassets.NewLocalProvider())
|
||||
got, err := l.Load(context.Background(), &fakes.FakePluginSource{
|
||||
l := newLoader(t, cfg, reg, procMgr, procPrvdr, pluginfakes.NewFakeErrorTracker(), pluginassets.NewLocalProvider())
|
||||
got, err := l.Load(context.Background(), &pluginfakes.FakePluginSource{
|
||||
PluginClassFunc: func(ctx context.Context) plugins.Class {
|
||||
return plugins.ClassExternal
|
||||
},
|
||||
@@ -927,12 +927,12 @@ func TestLoader_Load_DuplicatePlugins(t *testing.T) {
|
||||
},
|
||||
}
|
||||
|
||||
reg := fakes.NewFakePluginRegistry()
|
||||
procPrvdr := fakes.NewFakeBackendProcessProvider()
|
||||
procMgr := fakes.NewFakeProcessManager()
|
||||
reg := pluginfakes.NewFakePluginRegistry()
|
||||
procPrvdr := pluginfakes.NewFakeBackendProcessProvider()
|
||||
procMgr := pluginfakes.NewFakeProcessManager()
|
||||
cfg := &config.PluginManagementCfg{}
|
||||
l := newLoader(t, cfg, reg, procMgr, procPrvdr, fakes.NewFakeErrorTracker(), pluginassets.NewLocalProvider())
|
||||
got, err := l.Load(context.Background(), &fakes.FakePluginSource{
|
||||
l := newLoader(t, cfg, reg, procMgr, procPrvdr, pluginfakes.NewFakeErrorTracker(), pluginassets.NewLocalProvider())
|
||||
got, err := l.Load(context.Background(), &pluginfakes.FakePluginSource{
|
||||
PluginClassFunc: func(ctx context.Context) plugins.Class {
|
||||
return plugins.ClassExternal
|
||||
},
|
||||
@@ -1018,21 +1018,21 @@ func TestLoader_Load_SkipUninitializedPlugins(t *testing.T) {
|
||||
},
|
||||
}
|
||||
|
||||
reg := fakes.NewFakePluginRegistry()
|
||||
procPrvdr := fakes.NewFakeBackendProcessProvider()
|
||||
reg := pluginfakes.NewFakePluginRegistry()
|
||||
procPrvdr := pluginfakes.NewFakeBackendProcessProvider()
|
||||
// Cause an initialization error
|
||||
procPrvdr.BackendFactoryFunc = func(ctx context.Context, p *plugins.Plugin) backendplugin.PluginFactoryFunc {
|
||||
return func(pluginID string, _ log.Logger, _ trace.Tracer, _ func() []string) (backendplugin.Plugin, error) {
|
||||
if pluginID == "test-datasource" {
|
||||
return nil, errors.New("failed to initialize")
|
||||
}
|
||||
return &fakes.FakePluginClient{}, nil
|
||||
return &pluginfakes.FakePluginClient{}, nil
|
||||
}
|
||||
}
|
||||
procMgr := fakes.NewFakeProcessManager()
|
||||
procMgr := pluginfakes.NewFakeProcessManager()
|
||||
cfg := &config.PluginManagementCfg{}
|
||||
l := newLoader(t, cfg, reg, procMgr, procPrvdr, fakes.NewFakeErrorTracker(), pluginassets.NewLocalProvider())
|
||||
got, err := l.Load(context.Background(), &fakes.FakePluginSource{
|
||||
l := newLoader(t, cfg, reg, procMgr, procPrvdr, pluginfakes.NewFakeErrorTracker(), pluginassets.NewLocalProvider())
|
||||
got, err := l.Load(context.Background(), &pluginfakes.FakePluginSource{
|
||||
PluginClassFunc: func(ctx context.Context) plugins.Class {
|
||||
return plugins.ClassExternal
|
||||
},
|
||||
@@ -1071,7 +1071,7 @@ func TestLoader_AngularClass(t *testing.T) {
|
||||
},
|
||||
} {
|
||||
t.Run(tc.name, func(t *testing.T) {
|
||||
fakePluginSource := &fakes.FakePluginSource{
|
||||
fakePluginSource := &pluginfakes.FakePluginSource{
|
||||
PluginClassFunc: func(ctx context.Context) plugins.Class {
|
||||
return tc.class
|
||||
},
|
||||
@@ -1094,7 +1094,7 @@ func TestLoader_AngularClass(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestLoader_Load_Angular(t *testing.T) {
|
||||
fakePluginSource := &fakes.FakePluginSource{
|
||||
fakePluginSource := &pluginfakes.FakePluginSource{
|
||||
PluginClassFunc: func(ctx context.Context) plugins.Class {
|
||||
return plugins.ClassExternal
|
||||
},
|
||||
@@ -1227,13 +1227,13 @@ func TestLoader_Load_NestedPlugins(t *testing.T) {
|
||||
child.Parent = parent
|
||||
|
||||
t.Run("Load nested External plugins", func(t *testing.T) {
|
||||
procPrvdr := fakes.NewFakeBackendProcessProvider()
|
||||
procMgr := fakes.NewFakeProcessManager()
|
||||
reg := fakes.NewFakePluginRegistry()
|
||||
procPrvdr := pluginfakes.NewFakeBackendProcessProvider()
|
||||
procMgr := pluginfakes.NewFakeProcessManager()
|
||||
reg := pluginfakes.NewFakePluginRegistry()
|
||||
cfg := &config.PluginManagementCfg{}
|
||||
l := newLoader(t, cfg, reg, procMgr, procPrvdr, fakes.NewFakeErrorTracker(), pluginassets.NewLocalProvider())
|
||||
l := newLoader(t, cfg, reg, procMgr, procPrvdr, pluginfakes.NewFakeErrorTracker(), pluginassets.NewLocalProvider())
|
||||
|
||||
got, err := l.Load(context.Background(), &fakes.FakePluginSource{
|
||||
got, err := l.Load(context.Background(), &pluginfakes.FakePluginSource{
|
||||
PluginClassFunc: func(ctx context.Context) plugins.Class {
|
||||
return plugins.ClassExternal
|
||||
},
|
||||
@@ -1254,7 +1254,7 @@ func TestLoader_Load_NestedPlugins(t *testing.T) {
|
||||
verifyState(t, expected, reg, procPrvdr, procMgr)
|
||||
|
||||
t.Run("Load will exclude plugins that already exist", func(t *testing.T) {
|
||||
got, err := l.Load(context.Background(), &fakes.FakePluginSource{
|
||||
got, err := l.Load(context.Background(), &pluginfakes.FakePluginSource{
|
||||
PluginClassFunc: func(ctx context.Context) plugins.Class {
|
||||
return plugins.ClassExternal
|
||||
},
|
||||
@@ -1428,12 +1428,12 @@ func TestLoader_Load_NestedPlugins(t *testing.T) {
|
||||
child.Parent = parent
|
||||
expected := []*plugins.Plugin{parent, child}
|
||||
|
||||
reg := fakes.NewFakePluginRegistry()
|
||||
procPrvdr := fakes.NewFakeBackendProcessProvider()
|
||||
procMgr := fakes.NewFakeProcessManager()
|
||||
reg := pluginfakes.NewFakePluginRegistry()
|
||||
procPrvdr := pluginfakes.NewFakeBackendProcessProvider()
|
||||
procMgr := pluginfakes.NewFakeProcessManager()
|
||||
cfg := &config.PluginManagementCfg{}
|
||||
l := newLoader(t, cfg, reg, procMgr, procPrvdr, fakes.NewFakeErrorTracker(), pluginassets.NewLocalProvider())
|
||||
got, err := l.Load(context.Background(), &fakes.FakePluginSource{
|
||||
l := newLoader(t, cfg, reg, procMgr, procPrvdr, pluginfakes.NewFakeErrorTracker(), pluginassets.NewLocalProvider())
|
||||
got, err := l.Load(context.Background(), &pluginfakes.FakePluginSource{
|
||||
PluginClassFunc: func(ctx context.Context) plugins.Class {
|
||||
return plugins.ClassExternal
|
||||
},
|
||||
@@ -1471,13 +1471,13 @@ func newLoader(t *testing.T, cfg *config.PluginManagementCfg, reg registry.Servi
|
||||
return ProvideService(cfg, pipeline.ProvideDiscoveryStage(cfg, reg),
|
||||
pipeline.ProvideBootstrapStage(cfg, signature.DefaultCalculator(cfg), pluginAssetsProvider),
|
||||
pipeline.ProvideValidationStage(cfg, signature.NewValidator(signature.NewUnsignedAuthorizer(cfg)), angularInspector),
|
||||
pipeline.ProvideInitializationStage(cfg, reg, backendFactory, proc, &fakes.FakeAuthService{}, fakes.NewFakeRoleRegistry(), fakes.NewFakeActionSetRegistry(), fakes.NewFakePluginEnvProvider(), tracing.InitializeTracerForTest(), provisionedplugins.NewNoop()),
|
||||
pipeline.ProvideInitializationStage(cfg, reg, backendFactory, proc, &pluginfakes.FakeAuthService{}, pluginfakes.NewFakeRoleRegistry(), pluginfakes.NewFakeActionSetRegistry(), pluginfakes.NewFakePluginEnvProvider(), tracing.InitializeTracerForTest(), provisionedplugins.NewNoop()),
|
||||
terminate, errTracker)
|
||||
}
|
||||
|
||||
func newLoaderWithOpts(t *testing.T, cfg *config.PluginManagementCfg, opts loaderDepOpts) *Loader {
|
||||
reg := fakes.NewFakePluginRegistry()
|
||||
proc := fakes.NewFakeProcessManager()
|
||||
reg := pluginfakes.NewFakePluginRegistry()
|
||||
proc := pluginfakes.NewFakeProcessManager()
|
||||
|
||||
terminate, err := pipeline.ProvideTerminationStage(cfg, reg, proc)
|
||||
require.NoError(t, err)
|
||||
@@ -1490,23 +1490,23 @@ func newLoaderWithOpts(t *testing.T, cfg *config.PluginManagementCfg, opts loade
|
||||
|
||||
authServiceRegistry := opts.authServiceRegistry
|
||||
if authServiceRegistry == nil {
|
||||
authServiceRegistry = &fakes.FakeAuthService{}
|
||||
authServiceRegistry = &pluginfakes.FakeAuthService{}
|
||||
}
|
||||
|
||||
backendFactoryProvider := opts.backendFactoryProvider
|
||||
if backendFactoryProvider == nil {
|
||||
backendFactoryProvider = fakes.NewFakeBackendProcessProvider()
|
||||
backendFactoryProvider = pluginfakes.NewFakeBackendProcessProvider()
|
||||
}
|
||||
|
||||
return ProvideService(cfg, pipeline.ProvideDiscoveryStage(cfg, reg),
|
||||
pipeline.ProvideBootstrapStage(cfg, signature.DefaultCalculator(cfg), pluginassets.NewLocalProvider()),
|
||||
pipeline.ProvideValidationStage(cfg, signature.NewValidator(signature.NewUnsignedAuthorizer(cfg)), angularInspector),
|
||||
pipeline.ProvideInitializationStage(cfg, reg, backendFactoryProvider, proc, authServiceRegistry, fakes.NewFakeRoleRegistry(), fakes.NewFakeActionSetRegistry(), fakes.NewFakePluginEnvProvider(), tracing.InitializeTracerForTest(), provisionedplugins.NewNoop()),
|
||||
pipeline.ProvideInitializationStage(cfg, reg, backendFactoryProvider, proc, authServiceRegistry, pluginfakes.NewFakeRoleRegistry(), pluginfakes.NewFakeActionSetRegistry(), pluginfakes.NewFakePluginEnvProvider(), tracing.InitializeTracerForTest(), provisionedplugins.NewNoop()),
|
||||
terminate, errTracker)
|
||||
}
|
||||
|
||||
func verifyState(t *testing.T, ps []*plugins.Plugin, reg registry.Service,
|
||||
procPrvdr *fakes.FakeBackendProcessProvider, procMngr *fakes.FakeProcessManager,
|
||||
procPrvdr *pluginfakes.FakeBackendProcessProvider, procMngr *pluginfakes.FakeProcessManager,
|
||||
) {
|
||||
t.Helper()
|
||||
|
||||
|
||||
@@ -16,7 +16,7 @@ import (
|
||||
"github.com/grafana/grafana/pkg/plugins/auth"
|
||||
"github.com/grafana/grafana/pkg/plugins/config"
|
||||
"github.com/grafana/grafana/pkg/plugins/envvars"
|
||||
"github.com/grafana/grafana/pkg/plugins/manager/fakes"
|
||||
"github.com/grafana/grafana/pkg/plugins/manager/pluginfakes"
|
||||
"github.com/grafana/grafana/pkg/services/featuremgmt"
|
||||
"github.com/grafana/grafana/pkg/setting"
|
||||
)
|
||||
@@ -29,7 +29,7 @@ func TestPluginEnvVarsProvider_PluginEnvVars(t *testing.T) {
|
||||
},
|
||||
}
|
||||
|
||||
licensing := &fakes.FakeLicensingService{
|
||||
licensing := &pluginfakes.FakeLicensingService{
|
||||
LicenseEdition: "test",
|
||||
TokenRaw: "token",
|
||||
LicensePath: "/path/to/ent/license",
|
||||
|
||||
@@ -10,7 +10,7 @@ import (
|
||||
"github.com/grafana/grafana/pkg/infra/db/dbtest"
|
||||
"github.com/grafana/grafana/pkg/infra/localcache"
|
||||
"github.com/grafana/grafana/pkg/plugins"
|
||||
pluginFakes "github.com/grafana/grafana/pkg/plugins/manager/fakes"
|
||||
"github.com/grafana/grafana/pkg/plugins/manager/pluginfakes"
|
||||
"github.com/grafana/grafana/pkg/plugins/manager/registry"
|
||||
"github.com/grafana/grafana/pkg/services/datasources"
|
||||
fakeDatasources "github.com/grafana/grafana/pkg/services/datasources/fakes"
|
||||
@@ -41,7 +41,7 @@ func TestGet(t *testing.T) {
|
||||
cfg := setting.NewCfg()
|
||||
ds := &fakeDatasources.FakeDataSourceService{}
|
||||
db := &dbtest.FakeDB{ExpectedError: pluginsettings.ErrPluginSettingNotFound}
|
||||
store, err := pluginstore.NewPluginStoreForTest(preg, &pluginFakes.FakeLoader{}, &pluginFakes.FakeSourceRegistry{})
|
||||
store, err := pluginstore.NewPluginStoreForTest(preg, &pluginfakes.FakeLoader{}, &pluginfakes.FakeSourceRegistry{})
|
||||
require.NoError(t, err)
|
||||
pcp := plugincontext.ProvideService(cfg, localcache.ProvideService(),
|
||||
store, &fakeDatasources.FakeCacheService{},
|
||||
|
||||
@@ -6,7 +6,7 @@ import (
|
||||
"testing"
|
||||
|
||||
"github.com/grafana/grafana/pkg/plugins"
|
||||
"github.com/grafana/grafana/pkg/plugins/manager/fakes"
|
||||
"github.com/grafana/grafana/pkg/plugins/manager/pluginfakes"
|
||||
"github.com/grafana/grafana/pkg/plugins/manager/registry"
|
||||
"github.com/grafana/grafana/pkg/plugins/repo"
|
||||
"github.com/grafana/grafana/pkg/services/featuremgmt"
|
||||
@@ -26,10 +26,10 @@ func TestService_IsDisabled(t *testing.T) {
|
||||
&setting.Cfg{
|
||||
PreinstallPluginsAsync: []setting.InstallPlugin{{ID: "myplugin"}},
|
||||
},
|
||||
pluginstore.New(registry.NewInMemory(), &fakes.FakeLoader{}, &fakes.FakeSourceRegistry{}),
|
||||
&fakes.FakePluginInstaller{},
|
||||
pluginstore.New(registry.NewInMemory(), &pluginfakes.FakeLoader{}, &pluginfakes.FakeSourceRegistry{}),
|
||||
&pluginfakes.FakePluginInstaller{},
|
||||
prometheus.NewRegistry(),
|
||||
&fakes.FakePluginRepo{},
|
||||
&pluginfakes.FakePluginRepo{},
|
||||
featuremgmt.WithFeatures(),
|
||||
&pluginchecker.FakePluginUpdateChecker{},
|
||||
)
|
||||
@@ -160,7 +160,7 @@ func TestService_Run(t *testing.T) {
|
||||
}
|
||||
installed := 0
|
||||
installedFromURL := 0
|
||||
store, err := pluginstore.NewPluginStoreForTest(preg, &fakes.FakeLoader{}, &fakes.FakeSourceRegistry{})
|
||||
store, err := pluginstore.NewPluginStoreForTest(preg, &pluginfakes.FakeLoader{}, &pluginfakes.FakeSourceRegistry{})
|
||||
require.NoError(t, err)
|
||||
s, err := ProvideService(
|
||||
&setting.Cfg{
|
||||
@@ -168,7 +168,7 @@ func TestService_Run(t *testing.T) {
|
||||
PreinstallPluginsSync: tt.pluginsToInstallSync,
|
||||
},
|
||||
store,
|
||||
&fakes.FakePluginInstaller{
|
||||
&pluginfakes.FakePluginInstaller{
|
||||
AddFunc: func(ctx context.Context, pluginID string, version string, opts plugins.AddOpts) error {
|
||||
for _, plugin := range tt.pluginsToFail {
|
||||
if plugin == pluginID {
|
||||
@@ -193,7 +193,7 @@ func TestService_Run(t *testing.T) {
|
||||
},
|
||||
},
|
||||
prometheus.NewRegistry(),
|
||||
&fakes.FakePluginRepo{
|
||||
&pluginfakes.FakePluginRepo{
|
||||
GetPluginArchiveInfoFunc: func(_ context.Context, pluginID, version string, _ repo.CompatOpts) (*repo.PluginArchiveInfo, error) {
|
||||
return tt.latestPlugin, nil
|
||||
},
|
||||
|
||||
@@ -10,32 +10,32 @@ import (
|
||||
"github.com/grafana/grafana/pkg/plugins"
|
||||
"github.com/grafana/grafana/pkg/plugins/backendplugin"
|
||||
"github.com/grafana/grafana/pkg/plugins/log"
|
||||
"github.com/grafana/grafana/pkg/plugins/manager/fakes"
|
||||
"github.com/grafana/grafana/pkg/plugins/manager/pluginfakes"
|
||||
)
|
||||
|
||||
func TestStore_ProvideService(t *testing.T) {
|
||||
t.Run("Plugin sources are added in order", func(t *testing.T) {
|
||||
var loadedSrcs []plugins.Class
|
||||
l := &fakes.FakeLoader{
|
||||
l := &pluginfakes.FakeLoader{
|
||||
LoadFunc: func(ctx context.Context, src plugins.PluginSource) ([]*plugins.Plugin, error) {
|
||||
loadedSrcs = append(loadedSrcs, src.PluginClass(ctx))
|
||||
return nil, nil
|
||||
},
|
||||
}
|
||||
|
||||
srcs := &fakes.FakeSourceRegistry{ListFunc: func(_ context.Context) []plugins.PluginSource {
|
||||
srcs := &pluginfakes.FakeSourceRegistry{ListFunc: func(_ context.Context) []plugins.PluginSource {
|
||||
return []plugins.PluginSource{
|
||||
&fakes.FakePluginSource{
|
||||
&pluginfakes.FakePluginSource{
|
||||
PluginClassFunc: func(ctx context.Context) plugins.Class {
|
||||
return "1"
|
||||
},
|
||||
},
|
||||
&fakes.FakePluginSource{
|
||||
&pluginfakes.FakePluginSource{
|
||||
PluginClassFunc: func(ctx context.Context) plugins.Class {
|
||||
return "2"
|
||||
},
|
||||
},
|
||||
&fakes.FakePluginSource{
|
||||
&pluginfakes.FakePluginSource{
|
||||
PluginClassFunc: func(ctx context.Context) plugins.Class {
|
||||
return "3"
|
||||
},
|
||||
@@ -43,7 +43,7 @@ func TestStore_ProvideService(t *testing.T) {
|
||||
}
|
||||
}}
|
||||
|
||||
service := ProvideService(fakes.NewFakePluginRegistry(), srcs, l)
|
||||
service := ProvideService(pluginfakes.NewFakePluginRegistry(), srcs, l)
|
||||
ctx := context.Background()
|
||||
err := service.StartAsync(ctx)
|
||||
require.NoError(t, err)
|
||||
@@ -59,12 +59,12 @@ func TestStore_Plugin(t *testing.T) {
|
||||
p1.RegisterClient(&DecommissionedPlugin{})
|
||||
p2 := &plugins.Plugin{JSONData: plugins.JSONData{ID: "test-panel"}}
|
||||
|
||||
ps, err := NewPluginStoreForTest(&fakes.FakePluginRegistry{
|
||||
ps, err := NewPluginStoreForTest(&pluginfakes.FakePluginRegistry{
|
||||
Store: map[string]*plugins.Plugin{
|
||||
p1.ID: p1,
|
||||
p2.ID: p2,
|
||||
},
|
||||
}, &fakes.FakeLoader{}, &fakes.FakeSourceRegistry{})
|
||||
}, &pluginfakes.FakeLoader{}, &pluginfakes.FakeSourceRegistry{})
|
||||
require.NoError(t, err)
|
||||
|
||||
p, exists := ps.Plugin(context.Background(), p1.ID)
|
||||
@@ -86,7 +86,7 @@ func TestStore_Plugins(t *testing.T) {
|
||||
p5 := &plugins.Plugin{JSONData: plugins.JSONData{ID: "e-test-panel", Type: plugins.TypePanel}}
|
||||
p5.RegisterClient(&DecommissionedPlugin{})
|
||||
|
||||
ps, err := NewPluginStoreForTest(&fakes.FakePluginRegistry{
|
||||
ps, err := NewPluginStoreForTest(&pluginfakes.FakePluginRegistry{
|
||||
Store: map[string]*plugins.Plugin{
|
||||
p1.ID: p1,
|
||||
p2.ID: p2,
|
||||
@@ -94,7 +94,7 @@ func TestStore_Plugins(t *testing.T) {
|
||||
p4.ID: p4,
|
||||
p5.ID: p5,
|
||||
},
|
||||
}, &fakes.FakeLoader{}, &fakes.FakeSourceRegistry{})
|
||||
}, &pluginfakes.FakeLoader{}, &pluginfakes.FakeSourceRegistry{})
|
||||
require.NoError(t, err)
|
||||
|
||||
ToGrafanaDTO(p1)
|
||||
@@ -123,14 +123,14 @@ func TestStore_Plugins(t *testing.T) {
|
||||
|
||||
func TestStore_Routes(t *testing.T) {
|
||||
t.Run("Routes returns all static routes for non-decommissioned plugins", func(t *testing.T) {
|
||||
p1 := &plugins.Plugin{JSONData: plugins.JSONData{ID: "a-test-renderer", Type: plugins.TypeRenderer}, FS: fakes.NewFakePluginFS("/some/dir")}
|
||||
p2 := &plugins.Plugin{JSONData: plugins.JSONData{ID: "b-test-panel", Type: plugins.TypePanel}, FS: fakes.NewFakePluginFS("/grafana/")}
|
||||
p4 := &plugins.Plugin{JSONData: plugins.JSONData{ID: "d-test-datasource", Type: plugins.TypeDataSource}, FS: fakes.NewFakePluginFS("../test")}
|
||||
p5 := &plugins.Plugin{JSONData: plugins.JSONData{ID: "e-test-app", Type: plugins.TypeApp}, FS: fakes.NewFakePluginFS("any/path")}
|
||||
p1 := &plugins.Plugin{JSONData: plugins.JSONData{ID: "a-test-renderer", Type: plugins.TypeRenderer}, FS: pluginfakes.NewFakePluginFS("/some/dir")}
|
||||
p2 := &plugins.Plugin{JSONData: plugins.JSONData{ID: "b-test-panel", Type: plugins.TypePanel}, FS: pluginfakes.NewFakePluginFS("/grafana/")}
|
||||
p4 := &plugins.Plugin{JSONData: plugins.JSONData{ID: "d-test-datasource", Type: plugins.TypeDataSource}, FS: pluginfakes.NewFakePluginFS("../test")}
|
||||
p5 := &plugins.Plugin{JSONData: plugins.JSONData{ID: "e-test-app", Type: plugins.TypeApp}, FS: pluginfakes.NewFakePluginFS("any/path")}
|
||||
p6 := &plugins.Plugin{JSONData: plugins.JSONData{ID: "f-test-app", Type: plugins.TypeApp}}
|
||||
p6.RegisterClient(&DecommissionedPlugin{})
|
||||
|
||||
ps, err := NewPluginStoreForTest(&fakes.FakePluginRegistry{
|
||||
ps, err := NewPluginStoreForTest(&pluginfakes.FakePluginRegistry{
|
||||
Store: map[string]*plugins.Plugin{
|
||||
p1.ID: p1,
|
||||
p2.ID: p2,
|
||||
@@ -138,7 +138,7 @@ func TestStore_Routes(t *testing.T) {
|
||||
p5.ID: p5,
|
||||
p6.ID: p6,
|
||||
},
|
||||
}, &fakes.FakeLoader{}, &fakes.FakeSourceRegistry{})
|
||||
}, &pluginfakes.FakeLoader{}, &pluginfakes.FakeSourceRegistry{})
|
||||
require.NoError(t, err)
|
||||
|
||||
sr := func(p *plugins.Plugin) *plugins.StaticRoute {
|
||||
@@ -153,22 +153,22 @@ func TestStore_Routes(t *testing.T) {
|
||||
func TestProcessManager_shutdown(t *testing.T) {
|
||||
t.Run("When context is cancelled the plugin is stopped", func(t *testing.T) {
|
||||
p := &plugins.Plugin{JSONData: plugins.JSONData{ID: "test-datasource", Type: plugins.TypeDataSource}} // Backend: true
|
||||
backend := &fakes.FakeBackendPlugin{}
|
||||
backend := &pluginfakes.FakeBackendPlugin{}
|
||||
p.RegisterClient(backend)
|
||||
p.SetLogger(log.NewTestLogger())
|
||||
|
||||
unloaded := false
|
||||
ps := New(&fakes.FakePluginRegistry{
|
||||
ps := New(&pluginfakes.FakePluginRegistry{
|
||||
Store: map[string]*plugins.Plugin{
|
||||
p.ID: p,
|
||||
},
|
||||
}, &fakes.FakeLoader{
|
||||
}, &pluginfakes.FakeLoader{
|
||||
UnloadFunc: func(_ context.Context, plugin *plugins.Plugin) (*plugins.Plugin, error) {
|
||||
require.Equal(t, p, plugin)
|
||||
unloaded = true
|
||||
return nil, nil
|
||||
},
|
||||
}, &fakes.FakeSourceRegistry{})
|
||||
}, &pluginfakes.FakeSourceRegistry{})
|
||||
|
||||
ctx, cancel := context.WithCancel(context.Background())
|
||||
|
||||
@@ -188,20 +188,20 @@ func TestProcessManager_shutdown(t *testing.T) {
|
||||
|
||||
t.Run("When shutdown fails, stopping method returns error", func(t *testing.T) {
|
||||
p := &plugins.Plugin{JSONData: plugins.JSONData{ID: "test-datasource", Type: plugins.TypeDataSource}}
|
||||
backend := &fakes.FakeBackendPlugin{}
|
||||
backend := &pluginfakes.FakeBackendPlugin{}
|
||||
p.RegisterClient(backend)
|
||||
p.SetLogger(log.NewTestLogger())
|
||||
|
||||
expectedErr := errors.New("unload failed")
|
||||
ps, err := NewPluginStoreForTest(&fakes.FakePluginRegistry{
|
||||
ps, err := NewPluginStoreForTest(&pluginfakes.FakePluginRegistry{
|
||||
Store: map[string]*plugins.Plugin{
|
||||
p.ID: p,
|
||||
},
|
||||
}, &fakes.FakeLoader{
|
||||
}, &pluginfakes.FakeLoader{
|
||||
UnloadFunc: func(_ context.Context, plugin *plugins.Plugin) (*plugins.Plugin, error) {
|
||||
return nil, expectedErr
|
||||
},
|
||||
}, &fakes.FakeSourceRegistry{})
|
||||
}, &pluginfakes.FakeSourceRegistry{})
|
||||
require.NoError(t, err)
|
||||
|
||||
err = ps.stopping(nil)
|
||||
@@ -216,12 +216,12 @@ func TestStore_availablePlugins(t *testing.T) {
|
||||
p1.RegisterClient(&DecommissionedPlugin{})
|
||||
p2 := &plugins.Plugin{JSONData: plugins.JSONData{ID: "test-app"}}
|
||||
|
||||
ps, err := NewPluginStoreForTest(&fakes.FakePluginRegistry{
|
||||
ps, err := NewPluginStoreForTest(&pluginfakes.FakePluginRegistry{
|
||||
Store: map[string]*plugins.Plugin{
|
||||
p1.ID: p1,
|
||||
p2.ID: p2,
|
||||
},
|
||||
}, &fakes.FakeLoader{}, &fakes.FakeSourceRegistry{})
|
||||
}, &pluginfakes.FakeLoader{}, &pluginfakes.FakeSourceRegistry{})
|
||||
require.NoError(t, err)
|
||||
|
||||
aps := ps.availablePlugins(context.Background())
|
||||
|
||||
@@ -10,7 +10,7 @@ import (
|
||||
|
||||
"github.com/grafana/grafana/pkg/plugins"
|
||||
"github.com/grafana/grafana/pkg/plugins/config"
|
||||
"github.com/grafana/grafana/pkg/plugins/manager/fakes"
|
||||
"github.com/grafana/grafana/pkg/plugins/manager/pluginfakes"
|
||||
"github.com/grafana/grafana/pkg/plugins/manager/sources"
|
||||
)
|
||||
|
||||
@@ -20,7 +20,7 @@ func TestRenderer(t *testing.T) {
|
||||
|
||||
numLoaded := 0
|
||||
numUnloaded := 0
|
||||
loader := &fakes.FakeLoader{
|
||||
loader := &pluginfakes.FakeLoader{
|
||||
LoadFunc: func(ctx context.Context, src plugins.PluginSource) ([]*plugins.Plugin, error) {
|
||||
require.True(t, src.PluginClass(ctx) == plugins.ClassExternal)
|
||||
|
||||
@@ -59,7 +59,7 @@ func TestRenderer(t *testing.T) {
|
||||
p := &plugins.Plugin{
|
||||
JSONData: plugins.JSONData{ID: "test"},
|
||||
}
|
||||
loader := &fakes.FakeLoader{
|
||||
loader := &pluginfakes.FakeLoader{
|
||||
LoadFunc: func(ctx context.Context, src plugins.PluginSource) ([]*plugins.Plugin, error) {
|
||||
numLoaded++
|
||||
|
||||
|
||||
@@ -12,7 +12,6 @@ import (
|
||||
"github.com/grafana/grafana/pkg/plugins/backendplugin/provider"
|
||||
pluginsCfg "github.com/grafana/grafana/pkg/plugins/config"
|
||||
"github.com/grafana/grafana/pkg/plugins/manager/client"
|
||||
"github.com/grafana/grafana/pkg/plugins/manager/fakes"
|
||||
"github.com/grafana/grafana/pkg/plugins/manager/loader"
|
||||
"github.com/grafana/grafana/pkg/plugins/manager/loader/angular/angularinspector"
|
||||
"github.com/grafana/grafana/pkg/plugins/manager/pipeline/bootstrap"
|
||||
@@ -20,6 +19,7 @@ import (
|
||||
"github.com/grafana/grafana/pkg/plugins/manager/pipeline/initialization"
|
||||
"github.com/grafana/grafana/pkg/plugins/manager/pipeline/termination"
|
||||
"github.com/grafana/grafana/pkg/plugins/manager/pipeline/validation"
|
||||
"github.com/grafana/grafana/pkg/plugins/manager/pluginfakes"
|
||||
"github.com/grafana/grafana/pkg/plugins/manager/process"
|
||||
"github.com/grafana/grafana/pkg/plugins/manager/registry"
|
||||
"github.com/grafana/grafana/pkg/plugins/manager/signature"
|
||||
@@ -52,7 +52,7 @@ func CreateIntegrationTestCtx(t *testing.T, cfg *setting.Cfg, coreRegistry *core
|
||||
disc := pipeline.ProvideDiscoveryStage(pCfg, reg)
|
||||
boot := pipeline.ProvideBootstrapStage(pCfg, signature.ProvideService(pCfg, statickey.New()), pluginassets.NewLocalProvider())
|
||||
valid := pipeline.ProvideValidationStage(pCfg, signature.NewValidator(signature.NewUnsignedAuthorizer(pCfg)), angularInspector)
|
||||
init := pipeline.ProvideInitializationStage(pCfg, reg, provider.ProvideService(coreRegistry), proc, &fakes.FakeAuthService{}, fakes.NewFakeRoleRegistry(), fakes.NewFakeActionSetRegistry(), nil, tracing.InitializeTracerForTest(), provisionedplugins.NewNoop())
|
||||
init := pipeline.ProvideInitializationStage(pCfg, reg, provider.ProvideService(coreRegistry), proc, &pluginfakes.FakeAuthService{}, pluginfakes.NewFakeRoleRegistry(), pluginfakes.NewFakeActionSetRegistry(), nil, tracing.InitializeTracerForTest(), provisionedplugins.NewNoop())
|
||||
term, err := pipeline.ProvideTerminationStage(pCfg, reg, proc)
|
||||
require.NoError(t, err)
|
||||
|
||||
@@ -98,7 +98,7 @@ func CreateTestLoader(t *testing.T, cfg *pluginsCfg.PluginManagementCfg, opts Lo
|
||||
if opts.Initializer == nil {
|
||||
reg := registry.ProvideService()
|
||||
coreRegistry := coreplugin.NewRegistry(make(map[string]backendplugin.PluginFactoryFunc))
|
||||
opts.Initializer = pipeline.ProvideInitializationStage(cfg, reg, provider.ProvideService(coreRegistry), process.ProvideService(), &fakes.FakeAuthService{}, fakes.NewFakeRoleRegistry(), fakes.NewFakeActionSetRegistry(), nil, tracing.InitializeTracerForTest(), provisionedplugins.NewNoop())
|
||||
opts.Initializer = pipeline.ProvideInitializationStage(cfg, reg, provider.ProvideService(coreRegistry), process.ProvideService(), &pluginfakes.FakeAuthService{}, pluginfakes.NewFakeRoleRegistry(), pluginfakes.NewFakeActionSetRegistry(), nil, tracing.InitializeTracerForTest(), provisionedplugins.NewNoop())
|
||||
}
|
||||
|
||||
if opts.Terminator == nil {
|
||||
|
||||
@@ -17,7 +17,7 @@ import (
|
||||
"github.com/grafana/grafana/pkg/infra/log"
|
||||
"github.com/grafana/grafana/pkg/infra/serverlock"
|
||||
"github.com/grafana/grafana/pkg/infra/tracing"
|
||||
pluginfakes "github.com/grafana/grafana/pkg/plugins/manager/fakes"
|
||||
"github.com/grafana/grafana/pkg/plugins/manager/pluginfakes"
|
||||
"github.com/grafana/grafana/pkg/services/accesscontrol/acimpl"
|
||||
"github.com/grafana/grafana/pkg/services/accesscontrol/actest"
|
||||
acmock "github.com/grafana/grafana/pkg/services/accesscontrol/mock"
|
||||
|
||||
@@ -10,7 +10,7 @@ import (
|
||||
"github.com/grafana/grafana/pkg/infra/db"
|
||||
"github.com/grafana/grafana/pkg/infra/kvstore"
|
||||
"github.com/grafana/grafana/pkg/infra/log"
|
||||
pluginfakes "github.com/grafana/grafana/pkg/plugins/manager/fakes"
|
||||
"github.com/grafana/grafana/pkg/plugins/manager/pluginfakes"
|
||||
acmock "github.com/grafana/grafana/pkg/services/accesscontrol/mock"
|
||||
"github.com/grafana/grafana/pkg/services/datasources"
|
||||
dsservice "github.com/grafana/grafana/pkg/services/datasources/service"
|
||||
|
||||
@@ -13,7 +13,7 @@ import (
|
||||
"github.com/grafana/grafana/pkg/infra/log"
|
||||
"github.com/grafana/grafana/pkg/infra/tracing"
|
||||
"github.com/grafana/grafana/pkg/plugins"
|
||||
"github.com/grafana/grafana/pkg/plugins/manager/fakes"
|
||||
"github.com/grafana/grafana/pkg/plugins/manager/pluginfakes"
|
||||
"github.com/grafana/grafana/pkg/services/featuremgmt"
|
||||
"github.com/grafana/grafana/pkg/services/pluginsintegration/managedplugins"
|
||||
"github.com/grafana/grafana/pkg/services/pluginsintegration/pluginchecker"
|
||||
@@ -262,7 +262,7 @@ func TestPluginUpdateChecker_updateAll(t *testing.T) {
|
||||
availableUpdates: availableUpdates,
|
||||
log: log.NewNopLogger(),
|
||||
tracer: tracing.InitializeTracerForTest(),
|
||||
pluginInstaller: &fakes.FakePluginInstaller{
|
||||
pluginInstaller: &pluginfakes.FakePluginInstaller{
|
||||
AddFunc: func(ctx context.Context, pluginID, version string, opts plugins.AddOpts) error {
|
||||
pluginsFakeStore[pluginID] = version
|
||||
return nil
|
||||
|
||||
Reference in New Issue
Block a user