mirror of https://github.com/grafana/grafana
Backend Plugins: Refactor backend plugin registration and start (#21452)
Moves the details of loading plugins into the backend plugin manager from the respective plugin (datasource, transform and renderer).pull/21474/head
parent
8505d90768
commit
bb849d53bf
@ -1,72 +0,0 @@ |
||||
package plugins |
||||
|
||||
import ( |
||||
"bytes" |
||||
"encoding/json" |
||||
"testing" |
||||
|
||||
"github.com/grafana/grafana/pkg/setting" |
||||
|
||||
"github.com/stretchr/testify/assert" |
||||
"github.com/stretchr/testify/require" |
||||
) |
||||
|
||||
func TestLoadDatasourceVersion(t *testing.T) { |
||||
t.Run("If plugin version is not set, it should be treated as plugin version one", func(t *testing.T) { |
||||
refPlug := DataSourcePlugin{} |
||||
pluginJSON, err := json.Marshal(refPlug) |
||||
require.NoError(t, err) |
||||
|
||||
datasourcePlugin := DataSourcePlugin{} |
||||
err = datasourcePlugin.Load(json.NewDecoder(bytes.NewReader(pluginJSON)), "/tmp") |
||||
require.NoError(t, err) |
||||
delete(Plugins, refPlug.Id) |
||||
delete(DataSources, refPlug.Id) |
||||
|
||||
assert.True(t, datasourcePlugin.isVersionOne()) |
||||
}) |
||||
|
||||
t.Run("If plugin version is set to one, it should be treated as plugin version one", func(t *testing.T) { |
||||
refPlug := DataSourcePlugin{SDK: false} |
||||
pluginJSON, err := json.Marshal(refPlug) |
||||
require.NoError(t, err) |
||||
|
||||
datasourcePlugin := DataSourcePlugin{} |
||||
err = datasourcePlugin.Load(json.NewDecoder(bytes.NewReader(pluginJSON)), "/tmp") |
||||
require.NoError(t, err) |
||||
delete(Plugins, refPlug.Id) |
||||
delete(DataSources, refPlug.Id) |
||||
|
||||
assert.True(t, datasourcePlugin.isVersionOne()) |
||||
assert.False(t, datasourcePlugin.SDK) |
||||
}) |
||||
|
||||
t.Run("If plugin version is set to two, it should not be treated as plugin version one", func(t *testing.T) { |
||||
refPlug := DataSourcePlugin{SDK: true} |
||||
pluginJSON, err := json.Marshal(refPlug) |
||||
require.NoError(t, err) |
||||
|
||||
origToggles := setting.FeatureToggles |
||||
setting.FeatureToggles = map[string]bool{"expressions": true} |
||||
datasourcePlugin := DataSourcePlugin{} |
||||
err = datasourcePlugin.Load(json.NewDecoder(bytes.NewReader(pluginJSON)), "/tmp") |
||||
setting.FeatureToggles = origToggles |
||||
require.NoError(t, err) |
||||
delete(Plugins, refPlug.Id) |
||||
delete(DataSources, refPlug.Id) |
||||
|
||||
assert.False(t, datasourcePlugin.isVersionOne()) |
||||
assert.True(t, datasourcePlugin.SDK) |
||||
}) |
||||
|
||||
t.Run("Plugin version two requires expressions feature to be toggled", func(t *testing.T) { |
||||
refPlug := DataSourcePlugin{SDK: true} |
||||
pluginJSON, err := json.Marshal(refPlug) |
||||
require.NoError(t, err) |
||||
|
||||
require.Nil(t, setting.FeatureToggles, "setting.FeatureToggles shouldn't be set") |
||||
datasourcePlugin := DataSourcePlugin{} |
||||
err = datasourcePlugin.Load(json.NewDecoder(bytes.NewReader(pluginJSON)), "/tmp") |
||||
require.EqualError(t, err, "A plugin version 2 was found, but expressions feature toggle is not enabled") |
||||
}) |
||||
} |
||||
Loading…
Reference in new issue