mirror of
https://github.com/Syngnat/GoNavi.git
synced 2026-05-06 20:03:05 +08:00
- build-release 优先读取 GONAVI_VERSION 与 version/dev-version.txt - 新增共享测试版号文件,统一开发态与发布脚本版本来源 - internal/app 版本解析增加 dev-version 回退与回归测试 - macOS 发布改为 ZIP 归档,不再触发 create-dmg 与 Finder 排版 - 补充发布脚本调整的需求追踪文档
68 lines
1.9 KiB
Go
68 lines
1.9 KiB
Go
package app
|
|
|
|
import (
|
|
"os"
|
|
"path/filepath"
|
|
"testing"
|
|
)
|
|
|
|
func TestGetCurrentVersionUsesDevelopmentVersionFileWhenUnset(t *testing.T) {
|
|
tempDir := t.TempDir()
|
|
devVersionPath := filepath.Join(tempDir, "dev-version.txt")
|
|
if err := os.WriteFile(devVersionPath, []byte("0.0.1-test\n"), 0o644); err != nil {
|
|
t.Fatalf("WriteFile returned error: %v", err)
|
|
}
|
|
|
|
originalAppVersion := AppVersion
|
|
originalDevResolver := developmentVersionPathResolver
|
|
originalPackageResolver := packageVersionPathResolver
|
|
AppVersion = "0.0.0"
|
|
developmentVersionPathResolver = func() []string {
|
|
return []string{devVersionPath}
|
|
}
|
|
packageVersionPathResolver = func() []string {
|
|
return nil
|
|
}
|
|
t.Setenv("GONAVI_VERSION", "")
|
|
defer func() {
|
|
AppVersion = originalAppVersion
|
|
developmentVersionPathResolver = originalDevResolver
|
|
packageVersionPathResolver = originalPackageResolver
|
|
}()
|
|
|
|
got := getCurrentVersion()
|
|
if got != "0.0.1-test" {
|
|
t.Fatalf("expected development version file fallback, got %q", got)
|
|
}
|
|
}
|
|
|
|
func TestGetCurrentVersionPrefersEnvOverDevelopmentVersionFile(t *testing.T) {
|
|
tempDir := t.TempDir()
|
|
devVersionPath := filepath.Join(tempDir, "dev-version.txt")
|
|
if err := os.WriteFile(devVersionPath, []byte("0.0.1-test\n"), 0o644); err != nil {
|
|
t.Fatalf("WriteFile returned error: %v", err)
|
|
}
|
|
|
|
originalAppVersion := AppVersion
|
|
originalDevResolver := developmentVersionPathResolver
|
|
originalPackageResolver := packageVersionPathResolver
|
|
AppVersion = "0.0.0"
|
|
developmentVersionPathResolver = func() []string {
|
|
return []string{devVersionPath}
|
|
}
|
|
packageVersionPathResolver = func() []string {
|
|
return nil
|
|
}
|
|
t.Setenv("GONAVI_VERSION", "dev-override")
|
|
defer func() {
|
|
AppVersion = originalAppVersion
|
|
developmentVersionPathResolver = originalDevResolver
|
|
packageVersionPathResolver = originalPackageResolver
|
|
}()
|
|
|
|
got := getCurrentVersion()
|
|
if got != "dev-override" {
|
|
t.Fatalf("expected env override, got %q", got)
|
|
}
|
|
}
|