feat(workbench): 初始化内置工具目录
This commit is contained in:
@@ -101,6 +101,9 @@ func run(ctx context.Context) error {
|
||||
if err := svc.EnsureBuiltinTools(); err != nil {
|
||||
return err
|
||||
}
|
||||
if err := ensureBuiltinWorkbenchCatalog(svc); err != nil {
|
||||
return err
|
||||
}
|
||||
if summary, err := svc.MigrateLegacyStorage(); err != nil {
|
||||
slog.Warn("storage migration skipped after error", "error", err)
|
||||
} else if summary.Backup != "" {
|
||||
@@ -173,6 +176,10 @@ func run(ctx context.Context) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func ensureBuiltinWorkbenchCatalog(svc *service.Service) error {
|
||||
return svc.EnsureBuiltinWorkbenchCatalog()
|
||||
}
|
||||
|
||||
func redactCanvasSharePath(path string) string {
|
||||
const prefix = "/api/public/canvas-shares/"
|
||||
if !strings.HasPrefix(path, prefix) {
|
||||
|
||||
@@ -5,9 +5,34 @@ import (
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"yingce/backend/internal/database"
|
||||
"yingce/backend/internal/repository"
|
||||
"yingce/backend/internal/service"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
)
|
||||
|
||||
func TestEnsureBuiltinWorkbenchCatalogStartupWiring(t *testing.T) {
|
||||
db, err := database.Open(database.Config{Driver: "sqlite", DSN: "file:workbench-startup?mode=memory&cache=shared"})
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if err := database.MigrateSchema(db); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
svc := service.New(repository.New(db), t.TempDir())
|
||||
if err := ensureBuiltinWorkbenchCatalog(svc); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
tools, err := repository.New(db).WorkbenchTools("image", true)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if len(tools) == 0 {
|
||||
t.Fatal("startup initializer did not publish image workbench tools")
|
||||
}
|
||||
}
|
||||
|
||||
func TestAllowedOriginWildcard(t *testing.T) {
|
||||
t.Setenv("CANVAS_CORS_ORIGINS", "*")
|
||||
context, _ := gin.CreateTestContext(httptest.NewRecorder())
|
||||
|
||||
Reference in New Issue
Block a user