feat(canvas): 绘图工具支持自定义 tldraw License Key (#100)
* feat(canvas): 绘图工具 - 支持自定义 tldraw License Key * docs(canvas): 绘图工具 - 添加 License Key 页面截图
This commit is contained in:
@@ -1,6 +1,16 @@
|
||||
package service
|
||||
|
||||
import "testing"
|
||||
import (
|
||||
"encoding/json"
|
||||
"strings"
|
||||
"testing"
|
||||
|
||||
"infinite-canvas/backend/internal/model"
|
||||
"infinite-canvas/backend/internal/repository"
|
||||
|
||||
"gorm.io/driver/sqlite"
|
||||
"gorm.io/gorm"
|
||||
)
|
||||
|
||||
func TestDefaultDrawingEngineUsesExcalidraw(t *testing.T) {
|
||||
setting := defaultDrawingEngineSetting()
|
||||
@@ -19,3 +29,53 @@ func TestValidateDrawingEngineSetting(t *testing.T) {
|
||||
t.Fatal("validate unknown engine = nil")
|
||||
}
|
||||
}
|
||||
|
||||
func TestUpdateDrawingEngineSettingKeepsDefaultEngineAndStoresTldrawLicenseSeparately(t *testing.T) {
|
||||
db, err := gorm.Open(sqlite.Open(":memory:"), &gorm.Config{})
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if sqlDB, err := db.DB(); err == nil {
|
||||
sqlDB.SetMaxOpenConns(1)
|
||||
}
|
||||
if err := db.AutoMigrate(&model.SystemSetting{}, &model.AdminAuditEvent{}); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
repo := repository.New(db)
|
||||
svc := New(repo, t.TempDir())
|
||||
actor := &model.User{ID: "admin-1", Role: model.UserRoleAdmin}
|
||||
|
||||
setting, err := svc.UpdateDrawingEngineSetting(actor, DrawingEngineSetting{
|
||||
DefaultEngine: DrawingEngineExcalidraw,
|
||||
TldrawLicenseKey: "license-key-for-test",
|
||||
})
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if setting.DefaultEngine != DrawingEngineExcalidraw {
|
||||
t.Fatalf("default engine = %q, want %q", setting.DefaultEngine, DrawingEngineExcalidraw)
|
||||
}
|
||||
if setting.TldrawLicenseKey != "license-key-for-test" {
|
||||
t.Fatalf("license key = %q", setting.TldrawLicenseKey)
|
||||
}
|
||||
|
||||
licenseSetting, err := repo.SystemSetting(tldrawLicenseKeySettingKey)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
var savedLicenseKey string
|
||||
if err := json.Unmarshal([]byte(licenseSetting.ValueJSON), &savedLicenseKey); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if savedLicenseKey != "license-key-for-test" {
|
||||
t.Fatalf("stored license key = %q", savedLicenseKey)
|
||||
}
|
||||
|
||||
engineSetting, err := repo.SystemSetting(drawingEngineSettingKey)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if strings.Contains(engineSetting.ValueJSON, "license-key-for-test") {
|
||||
t.Fatalf("drawing engine setting must not contain the license key: %s", engineSetting.ValueJSON)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user