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{}
|
2023-01-23 19:30:47 +00:00
|
|
|
var _ plugintypes.RenderContext = &pluginRenderContext{}
|
2022-08-12 10:48:16 +00:00
|
|
|
|
2023-01-23 19:30:47 +00:00
|
|
|
func TestDemoPlugin(t *testing.T) {
|
2022-08-09 15:25:22 +00:00
|
|
|
app := &goBlog{
|
|
|
|
cfg: createDefaultTestConfig(t),
|
|
|
|
}
|
|
|
|
app.cfg.Plugins = []*configPlugin{
|
|
|
|
{
|
2023-01-23 19:30:47 +00:00
|
|
|
Path: "embedded:demo",
|
|
|
|
Import: "demo",
|
2022-08-09 15:25:22 +00:00
|
|
|
Config: map[string]any{
|
|
|
|
"prio": 99,
|
|
|
|
},
|
|
|
|
},
|
|
|
|
}
|
|
|
|
|
|
|
|
err := app.initConfig(false)
|
|
|
|
require.NoError(t, err)
|
|
|
|
err = app.initPlugins()
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
2023-01-23 19:30:47 +00:00
|
|
|
middlewarePlugins := app.getPlugins(pluginMiddlewareType)
|
2022-08-09 15:25:22 +00:00
|
|
|
if assert.Len(t, middlewarePlugins, 1) {
|
2023-01-23 19:30:47 +00:00
|
|
|
mdw := middlewarePlugins[0].(plugintypes.Middleware)
|
2022-08-09 15:25:22 +00:00
|
|
|
assert.Equal(t, 99, mdw.Prio())
|
|
|
|
}
|
|
|
|
}
|