Plugins: Plugin Store API returns DTO model (#41340)
* toying around * fix refs * remove unused fields * go further * add context * ensure streaming handler is set
This commit is contained in:
@@ -73,8 +73,11 @@ func TestPluginManager_loadPlugins(t *testing.T) {
|
||||
assert.Equal(t, 0, pc.stopCount)
|
||||
assert.False(t, pc.exited)
|
||||
assert.False(t, pc.decommissioned)
|
||||
assert.Equal(t, p, pm.Plugin(testPluginID))
|
||||
assert.Len(t, pm.Plugins(), 1)
|
||||
|
||||
testPlugin, exists := pm.Plugin(context.Background(), testPluginID)
|
||||
assert.True(t, exists)
|
||||
assert.Equal(t, p.ToDTO(), testPlugin)
|
||||
assert.Len(t, pm.Plugins(context.Background()), 1)
|
||||
|
||||
verifyNoPluginErrors(t, pm)
|
||||
})
|
||||
@@ -96,8 +99,11 @@ func TestPluginManager_loadPlugins(t *testing.T) {
|
||||
assert.Equal(t, 0, pc.stopCount)
|
||||
assert.False(t, pc.exited)
|
||||
assert.False(t, pc.decommissioned)
|
||||
assert.Equal(t, p, pm.Plugin(testPluginID))
|
||||
assert.Len(t, pm.Plugins(), 1)
|
||||
|
||||
testPlugin, exists := pm.Plugin(context.Background(), testPluginID)
|
||||
assert.True(t, exists)
|
||||
assert.Equal(t, p.ToDTO(), testPlugin)
|
||||
assert.Len(t, pm.Plugins(context.Background()), 1)
|
||||
|
||||
verifyNoPluginErrors(t, pm)
|
||||
})
|
||||
@@ -119,8 +125,11 @@ func TestPluginManager_loadPlugins(t *testing.T) {
|
||||
assert.Equal(t, 0, pc.stopCount)
|
||||
assert.False(t, pc.exited)
|
||||
assert.False(t, pc.decommissioned)
|
||||
assert.Equal(t, p, pm.Plugin(testPluginID))
|
||||
assert.Len(t, pm.Plugins(), 1)
|
||||
|
||||
testPlugin, exists := pm.Plugin(context.Background(), testPluginID)
|
||||
assert.True(t, exists)
|
||||
assert.Equal(t, p.ToDTO(), testPlugin)
|
||||
assert.Len(t, pm.Plugins(context.Background()), 1)
|
||||
|
||||
verifyNoPluginErrors(t, pm)
|
||||
})
|
||||
@@ -142,8 +151,11 @@ func TestPluginManager_loadPlugins(t *testing.T) {
|
||||
assert.Equal(t, 0, pc.stopCount)
|
||||
assert.False(t, pc.exited)
|
||||
assert.False(t, pc.decommissioned)
|
||||
assert.Equal(t, p, pm.Plugin(testPluginID))
|
||||
assert.Len(t, pm.Plugins(), 1)
|
||||
|
||||
testPlugin, exists := pm.Plugin(context.Background(), testPluginID)
|
||||
assert.True(t, exists)
|
||||
assert.Equal(t, p.ToDTO(), testPlugin)
|
||||
assert.Len(t, pm.Plugins(context.Background()), 1)
|
||||
|
||||
verifyNoPluginErrors(t, pm)
|
||||
})
|
||||
@@ -179,8 +191,11 @@ func TestPluginManager_Installer(t *testing.T) {
|
||||
assert.Equal(t, 0, pc.stopCount)
|
||||
assert.False(t, pc.exited)
|
||||
assert.False(t, pc.decommissioned)
|
||||
assert.Equal(t, p, pm.Plugin(testPluginID))
|
||||
assert.Len(t, pm.Plugins(), 1)
|
||||
|
||||
testPlugin, exists := pm.Plugin(context.Background(), testPluginID)
|
||||
assert.True(t, exists)
|
||||
assert.Equal(t, p.ToDTO(), testPlugin)
|
||||
assert.Len(t, pm.Plugins(context.Background()), 1)
|
||||
|
||||
t.Run("Won't install if already installed", func(t *testing.T) {
|
||||
err := pm.Add(context.Background(), testPluginID, "1.0.0", plugins.AddOpts{})
|
||||
@@ -208,8 +223,11 @@ func TestPluginManager_Installer(t *testing.T) {
|
||||
assert.Equal(t, 0, pc.stopCount)
|
||||
assert.False(t, pc.exited)
|
||||
assert.False(t, pc.decommissioned)
|
||||
assert.Equal(t, p, pm.Plugin(testPluginID))
|
||||
assert.Len(t, pm.Plugins(), 1)
|
||||
|
||||
testPlugin, exists := pm.Plugin(context.Background(), testPluginID)
|
||||
assert.True(t, exists)
|
||||
assert.Equal(t, p.ToDTO(), testPlugin)
|
||||
assert.Len(t, pm.Plugins(context.Background()), 1)
|
||||
})
|
||||
|
||||
t.Run("Uninstall", func(t *testing.T) {
|
||||
@@ -219,7 +237,9 @@ func TestPluginManager_Installer(t *testing.T) {
|
||||
assert.Equal(t, 2, i.installCount)
|
||||
assert.Equal(t, 2, i.uninstallCount)
|
||||
|
||||
assert.Nil(t, pm.Plugin(p.ID))
|
||||
p, exists := pm.Plugin(context.Background(), p.ID)
|
||||
assert.False(t, exists)
|
||||
assert.Equal(t, plugins.PluginDTO{}, p)
|
||||
assert.Len(t, pm.Routes(), 0)
|
||||
|
||||
t.Run("Won't uninstall if not installed", func(t *testing.T) {
|
||||
@@ -246,8 +266,11 @@ func TestPluginManager_Installer(t *testing.T) {
|
||||
assert.Equal(t, 0, pc.stopCount)
|
||||
assert.False(t, pc.exited)
|
||||
assert.False(t, pc.decommissioned)
|
||||
assert.Equal(t, p, pm.Plugin(testPluginID))
|
||||
assert.Len(t, pm.Plugins(), 1)
|
||||
|
||||
testPlugin, exists := pm.Plugin(context.Background(), testPluginID)
|
||||
assert.True(t, exists)
|
||||
assert.Equal(t, p.ToDTO(), testPlugin)
|
||||
assert.Len(t, pm.Plugins(context.Background()), 1)
|
||||
|
||||
verifyNoPluginErrors(t, pm)
|
||||
|
||||
@@ -277,8 +300,11 @@ func TestPluginManager_Installer(t *testing.T) {
|
||||
assert.Equal(t, 0, pc.stopCount)
|
||||
assert.False(t, pc.exited)
|
||||
assert.False(t, pc.decommissioned)
|
||||
assert.Equal(t, p, pm.Plugin(testPluginID))
|
||||
assert.Len(t, pm.Plugins(), 1)
|
||||
|
||||
testPlugin, exists := pm.Plugin(context.Background(), testPluginID)
|
||||
assert.True(t, exists)
|
||||
assert.Equal(t, p.ToDTO(), testPlugin)
|
||||
assert.Len(t, pm.Plugins(context.Background()), 1)
|
||||
|
||||
verifyNoPluginErrors(t, pm)
|
||||
|
||||
@@ -301,7 +327,9 @@ func TestPluginManager_lifecycle_managed(t *testing.T) {
|
||||
require.NotNil(t, ctx.plugin)
|
||||
require.Equal(t, testPluginID, ctx.plugin.ID)
|
||||
require.Equal(t, 1, ctx.pluginClient.startCount)
|
||||
require.NotNil(t, ctx.manager.Plugin(testPluginID))
|
||||
testPlugin, exists := ctx.manager.Plugin(context.Background(), testPluginID)
|
||||
assert.True(t, exists)
|
||||
require.NotNil(t, testPlugin)
|
||||
|
||||
t.Run("Should not be able to register an already registered plugin", func(t *testing.T) {
|
||||
err := ctx.manager.registerAndStart(context.Background(), ctx.plugin)
|
||||
@@ -564,7 +592,7 @@ func newScenario(t *testing.T, managed bool, fn func(t *testing.T, ctx *managerS
|
||||
}
|
||||
|
||||
func verifyNoPluginErrors(t *testing.T, pm *PluginManager) {
|
||||
for _, plugin := range pm.Plugins() {
|
||||
for _, plugin := range pm.Plugins(context.Background()) {
|
||||
assert.Nil(t, plugin.SignatureError)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user