Files
MyGoNavi/internal/app/version_test.go
Syngnat 14c6510835 🔧 fix(release/version): 对齐测试版号并移除Mac交互打包
- build-release 优先读取 GONAVI_VERSION 与 version/dev-version.txt
- 新增共享测试版号文件,统一开发态与发布脚本版本来源
- internal/app 版本解析增加 dev-version 回退与回归测试
- macOS 发布改为 ZIP 归档,不再触发 create-dmg 与 Finder 排版
- 补充发布脚本调整的需求追踪文档
2026-04-24 16:48:09 +08:00

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)
}
}