mirror of
https://github.com/sipeed/picoclaw.git
synced 2026-05-25 16:00:35 +00:00
680e845d61
* feat:migrate version info from internal package to pkg/config * * fix lint issue
93 lines
2.1 KiB
Go
93 lines
2.1 KiB
Go
package config
|
|
|
|
import (
|
|
"runtime"
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func TestFormatVersion_NoGitCommit(t *testing.T) {
|
|
oldVersion, oldGit := Version, GitCommit
|
|
t.Cleanup(func() { Version, GitCommit = oldVersion, oldGit })
|
|
|
|
Version = "1.2.3"
|
|
GitCommit = ""
|
|
|
|
assert.Equal(t, "1.2.3", FormatVersion())
|
|
}
|
|
|
|
func TestFormatVersion_WithGitCommit(t *testing.T) {
|
|
oldVersion, oldGit := Version, GitCommit
|
|
t.Cleanup(func() { Version, GitCommit = oldVersion, oldGit })
|
|
|
|
Version = "1.2.3"
|
|
GitCommit = "abc123"
|
|
|
|
assert.Equal(t, "1.2.3 (git: abc123)", FormatVersion())
|
|
}
|
|
|
|
func TestFormatBuildInfo_UsesBuildTimeAndGoVersion_WhenSet(t *testing.T) {
|
|
oldBuildTime, oldGoVersion := BuildTime, GoVersion
|
|
t.Cleanup(func() { BuildTime, GoVersion = oldBuildTime, oldGoVersion })
|
|
|
|
BuildTime = "2026-02-20T00:00:00Z"
|
|
GoVersion = "go1.23.0"
|
|
|
|
build, goVer := FormatBuildInfo()
|
|
|
|
assert.Equal(t, BuildTime, build)
|
|
assert.Equal(t, GoVersion, goVer)
|
|
}
|
|
|
|
func TestFormatBuildInfo_EmptyBuildTime_ReturnsEmptyBuild(t *testing.T) {
|
|
oldBuildTime, oldGoVersion := BuildTime, GoVersion
|
|
t.Cleanup(func() { BuildTime, GoVersion = oldBuildTime, oldGoVersion })
|
|
|
|
BuildTime = ""
|
|
GoVersion = "go1.23.0"
|
|
|
|
build, goVer := FormatBuildInfo()
|
|
|
|
assert.Empty(t, build)
|
|
assert.Equal(t, GoVersion, goVer)
|
|
}
|
|
|
|
func TestFormatBuildInfo_EmptyGoVersion_FallsBackToRuntimeVersion(t *testing.T) {
|
|
oldBuildTime, oldGoVersion := BuildTime, GoVersion
|
|
t.Cleanup(func() { BuildTime, GoVersion = oldBuildTime, oldGoVersion })
|
|
|
|
BuildTime = "x"
|
|
GoVersion = ""
|
|
|
|
build, goVer := FormatBuildInfo()
|
|
|
|
assert.Equal(t, "x", build)
|
|
assert.Equal(t, runtime.Version(), goVer)
|
|
}
|
|
|
|
func TestGetVersion(t *testing.T) {
|
|
oldVersion := Version
|
|
t.Cleanup(func() { Version = oldVersion })
|
|
|
|
Version = "dev"
|
|
assert.Equal(t, "dev", GetVersion())
|
|
}
|
|
|
|
func TestGetVersion_Custom(t *testing.T) {
|
|
oldVersion := Version
|
|
t.Cleanup(func() { Version = oldVersion })
|
|
|
|
Version = "v1.0.0"
|
|
assert.Equal(t, "v1.0.0", GetVersion())
|
|
}
|
|
|
|
func TestVersion_DefaultIsDev(t *testing.T) {
|
|
// Reset to default values
|
|
oldVersion := Version
|
|
Version = "dev"
|
|
t.Cleanup(func() { Version = oldVersion })
|
|
|
|
assert.Equal(t, "dev", Version)
|
|
}
|