2022-08-09 15:25:22 +00:00
|
|
|
package main
|
|
|
|
|
|
|
|
import (
|
|
|
|
"testing"
|
|
|
|
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
|
|
"github.com/stretchr/testify/require"
|
|
|
|
"go.goblog.app/app/pkgs/plugintypes"
|
|
|
|
)
|
|
|
|
|
2022-08-12 10:48:16 +00:00
|
|
|
var _ plugintypes.App = &goBlog{}
|
|
|
|
var _ plugintypes.Database = &database{}
|
|
|
|
var _ plugintypes.Post = &post{}
|
|
|
|
var _ plugintypes.PostRenderData = &pluginPostRenderData{}
|
|
|
|
|
2022-08-09 15:25:22 +00:00
|
|
|
func TestExecPlugin(t *testing.T) {
|
|
|
|
app := &goBlog{
|
|
|
|
cfg: createDefaultTestConfig(t),
|
|
|
|
}
|
|
|
|
app.cfg.Plugins = []*configPlugin{
|
|
|
|
{
|
|
|
|
Path: "./plugins/demo",
|
|
|
|
Type: "exec",
|
|
|
|
Import: "demoexec",
|
|
|
|
},
|
|
|
|
}
|
|
|
|
|
|
|
|
err := app.initConfig(false)
|
|
|
|
require.NoError(t, err)
|
|
|
|
err = app.initPlugins()
|
|
|
|
require.NoError(t, err)
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestMiddlewarePlugin(t *testing.T) {
|
|
|
|
app := &goBlog{
|
|
|
|
cfg: createDefaultTestConfig(t),
|
|
|
|
}
|
|
|
|
app.cfg.Plugins = []*configPlugin{
|
|
|
|
{
|
|
|
|
Path: "./plugins/demo",
|
|
|
|
Type: "middleware",
|
|
|
|
Import: "demomiddleware",
|
|
|
|
Config: map[string]any{
|
|
|
|
"prio": 99,
|
|
|
|
},
|
|
|
|
},
|
|
|
|
}
|
|
|
|
|
|
|
|
err := app.initConfig(false)
|
|
|
|
require.NoError(t, err)
|
|
|
|
err = app.initPlugins()
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
|
|
|
middlewarePlugins := getPluginsForType[plugintypes.Middleware](app, "middleware")
|
|
|
|
if assert.Len(t, middlewarePlugins, 1) {
|
|
|
|
mdw := middlewarePlugins[0]
|
|
|
|
assert.Equal(t, 99, mdw.Prio())
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|