mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
Plugins: Fix loading of dist folders (#80015)
* end to end * tidy * fix whitespace * remove unused code * fix linter * fix gosec + add sort * fix test * apply cr feedback
This commit is contained in:
@@ -8,20 +8,21 @@ import (
|
||||
"github.com/stretchr/testify/require"
|
||||
|
||||
"github.com/grafana/grafana/pkg/plugins"
|
||||
"github.com/grafana/grafana/pkg/plugins/config"
|
||||
"github.com/grafana/grafana/pkg/setting"
|
||||
)
|
||||
|
||||
func TestSources_List(t *testing.T) {
|
||||
t.Run("Plugin sources are populated by default and listed in specific order", func(t *testing.T) {
|
||||
testdata, err := filepath.Abs("../testdata")
|
||||
require.NoError(t, err)
|
||||
|
||||
cfg := &setting.Cfg{
|
||||
BundledPluginsPath: "path1",
|
||||
}
|
||||
pCfg := &config.Cfg{
|
||||
PluginsPath: "path2",
|
||||
StaticRootPath: testdata,
|
||||
PluginsPath: filepath.Join(testdata, "pluginRootWithDist"),
|
||||
BundledPluginsPath: filepath.Join(testdata, "unsigned-panel"),
|
||||
PluginSettings: setting.PluginSettings{
|
||||
"foo": map[string]string{
|
||||
"path": "path3",
|
||||
"path": filepath.Join(testdata, "test-app"),
|
||||
},
|
||||
"bar": map[string]string{
|
||||
"url": "https://grafana.plugin",
|
||||
@@ -29,15 +30,18 @@ func TestSources_List(t *testing.T) {
|
||||
},
|
||||
}
|
||||
|
||||
s := ProvideService(cfg, pCfg)
|
||||
s := ProvideService(cfg)
|
||||
srcs := s.List(context.Background())
|
||||
|
||||
ctx := context.Background()
|
||||
|
||||
require.Len(t, srcs, 3)
|
||||
require.Len(t, srcs, 6)
|
||||
|
||||
require.Equal(t, srcs[0].PluginClass(ctx), plugins.ClassCore)
|
||||
require.Equal(t, srcs[0].PluginURIs(ctx), []string{filepath.Join("app", "plugins", "datasource"), filepath.Join("app", "plugins", "panel")})
|
||||
require.Equal(t, srcs[0].PluginURIs(ctx), []string{
|
||||
filepath.Join(testdata, "app", "plugins", "datasource"),
|
||||
filepath.Join(testdata, "app", "plugins", "panel"),
|
||||
})
|
||||
sig, exists := srcs[0].DefaultSignature(ctx)
|
||||
require.True(t, exists)
|
||||
require.Equal(t, plugins.SignatureStatusInternal, sig.Status)
|
||||
@@ -45,15 +49,33 @@ func TestSources_List(t *testing.T) {
|
||||
require.Equal(t, "", sig.SigningOrg)
|
||||
|
||||
require.Equal(t, srcs[1].PluginClass(ctx), plugins.ClassBundled)
|
||||
require.Equal(t, srcs[1].PluginURIs(ctx), []string{"path1"})
|
||||
require.Equal(t, srcs[1].PluginURIs(ctx), []string{filepath.Join(testdata, "unsigned-panel")})
|
||||
sig, exists = srcs[1].DefaultSignature(ctx)
|
||||
require.False(t, exists)
|
||||
require.Equal(t, plugins.Signature{}, sig)
|
||||
|
||||
require.Equal(t, srcs[2].PluginClass(ctx), plugins.ClassExternal)
|
||||
require.Equal(t, srcs[2].PluginURIs(ctx), []string{"path2", "path3"})
|
||||
require.Equal(t, srcs[2].PluginURIs(ctx), []string{
|
||||
filepath.Join(testdata, "pluginRootWithDist", "datasource"),
|
||||
})
|
||||
sig, exists = srcs[2].DefaultSignature(ctx)
|
||||
require.False(t, exists)
|
||||
require.Equal(t, plugins.Signature{}, sig)
|
||||
|
||||
require.Equal(t, srcs[3].PluginClass(ctx), plugins.ClassExternal)
|
||||
require.Equal(t, srcs[3].PluginURIs(ctx), []string{
|
||||
filepath.Join(testdata, "pluginRootWithDist", "dist"),
|
||||
})
|
||||
sig, exists = srcs[3].DefaultSignature(ctx)
|
||||
require.False(t, exists)
|
||||
require.Equal(t, plugins.Signature{}, sig)
|
||||
|
||||
require.Equal(t, srcs[4].PluginClass(ctx), plugins.ClassExternal)
|
||||
require.Equal(t, srcs[4].PluginURIs(ctx), []string{
|
||||
filepath.Join(testdata, "pluginRootWithDist", "panel"),
|
||||
})
|
||||
sig, exists = srcs[4].DefaultSignature(ctx)
|
||||
require.False(t, exists)
|
||||
require.Equal(t, plugins.Signature{}, sig)
|
||||
})
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user