Files
MyGoNavi/internal/app/methods_driver_tdengine_build_test.go
Syngnat 23ac30086f 🐛 fix(tdengine): 修复低版本驱动连接与表元数据兼容问题
- 修复 TDengine 历史驱动源码构建未按所选版本切换依赖的问题
- 为 DESCRIBE 与 SHOW CREATE 增加旧版本语法降级,避免表详情加载报错
- 为表概览补充 TDengine 专用查询分支,避免误查 information_schema
- 补充 TDengine 兼容性与驱动构建回归测试

Refs #531
2026-06-03 21:33:15 +08:00

76 lines
2.1 KiB
Go

package app
import (
"os"
"path/filepath"
"strings"
"testing"
)
func TestRewriteRequiredModuleVersionUpdatesTDengineDriver(t *testing.T) {
input := []byte(`module example
go 1.24.3
require (
github.com/taosdata/driver-go/v3 v3.7.8
github.com/go-sql-driver/mysql v1.9.3
)
`)
got, changed, err := rewriteRequiredModuleVersion(input, "github.com/taosdata/driver-go/v3", "3.3.1")
if err != nil {
t.Fatalf("rewriteRequiredModuleVersion returned error: %v", err)
}
if !changed {
t.Fatal("expected TDengine module version to be rewritten")
}
text := string(got)
if !strings.Contains(text, "github.com/taosdata/driver-go/v3 v3.3.1") {
t.Fatalf("expected rewritten go.mod to contain TDengine 3.3.1, got:\n%s", text)
}
if !strings.Contains(text, "github.com/go-sql-driver/mysql v1.9.3") {
t.Fatalf("expected unrelated dependencies to remain unchanged, got:\n%s", text)
}
}
func TestPrepareOptionalDriverBuildModOverrideCreatesVersionedModFileForTDengine(t *testing.T) {
projectRoot := t.TempDir()
goMod := `module example
go 1.24.3
require (
github.com/taosdata/driver-go/v3 v3.7.8
)
`
if err := os.WriteFile(filepath.Join(projectRoot, "go.mod"), []byte(goMod), 0o644); err != nil {
t.Fatalf("write go.mod: %v", err)
}
if err := os.WriteFile(filepath.Join(projectRoot, "go.sum"), []byte("placeholder"), 0o644); err != nil {
t.Fatalf("write go.sum: %v", err)
}
override, err := prepareOptionalDriverBuildModOverride(projectRoot, "tdengine", "3.3.1")
if err != nil {
t.Fatalf("prepareOptionalDriverBuildModOverride returned error: %v", err)
}
if override == nil {
t.Fatal("expected TDengine versioned build to create a mod override")
}
modBytes, err := os.ReadFile(override.modFile)
if err != nil {
t.Fatalf("read override mod file: %v", err)
}
if !strings.Contains(string(modBytes), "github.com/taosdata/driver-go/v3 v3.3.1") {
t.Fatalf("override mod file did not pin TDengine 3.3.1:\n%s", string(modBytes))
}
overrideDir := filepath.Dir(override.modFile)
override.cleanup()
if _, statErr := os.Stat(overrideDir); !os.IsNotExist(statErr) {
t.Fatalf("expected cleanup to remove override dir, statErr=%v", statErr)
}
}