Files
MyGoNavi/internal/app/methods_driver_local_import_test.go
Syngnat f3b78f9763 🐛 fix(driver): 明确JDBC Jar导入限制并补充Kingbase指引
- 后端在驱动包选择与本地导入前拦截 JDBC Jar,并返回替代说明
- 驱动管理统一改为“导入驱动包”,补充不支持 JDBC Jar 的提示
- 自定义连接补充 kingbase8 等驱动别名与 Go 驱动说明
- 新增后端与前端回归测试

Refs #317
2026-04-17 20:41:58 +08:00

38 lines
1.1 KiB
Go

package app
import (
"os"
"path/filepath"
"strings"
"testing"
)
func TestValidateLocalDriverPackagePathRejectsJdbcJar(t *testing.T) {
err := validateLocalDriverPackagePath(filepath.Join("tmp", "kingbase8.JAR"))
if err == nil {
t.Fatal("expected JDBC jar path to be rejected")
}
if !strings.Contains(err.Error(), "JDBC Jar") {
t.Fatalf("expected JDBC jar hint, got %q", err.Error())
}
if err := validateLocalDriverPackagePath(filepath.Join("tmp", "kingbase-driver-agent.zip")); err != nil {
t.Fatalf("expected zip package to stay supported, got %v", err)
}
}
func TestInstallLocalDriverPackageRejectsJdbcJarBeforeBuildChecks(t *testing.T) {
jarPath := filepath.Join(t.TempDir(), "kingbase8.jar")
if err := os.WriteFile(jarPath, []byte("fake-jar"), 0o644); err != nil {
t.Fatalf("write temp jar: %v", err)
}
app := &App{}
result := app.InstallLocalDriverPackage("kingbase", jarPath, t.TempDir(), "")
if result.Success {
t.Fatal("expected local jar import to fail")
}
if !strings.Contains(result.Message, "JDBC Jar") {
t.Fatalf("expected JDBC jar guidance, got %q", result.Message)
}
}