From e522ffa44f1453173800cee6c70cec1020ad6a71 Mon Sep 17 00:00:00 2001 From: bagas Date: Fri, 23 Jan 2026 15:41:00 +0700 Subject: [PATCH] test(version): add unit tests for version behavior --- internal/version/version_test.go | 84 ++++++++++++++++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 internal/version/version_test.go diff --git a/internal/version/version_test.go b/internal/version/version_test.go new file mode 100644 index 0000000..f4873f5 --- /dev/null +++ b/internal/version/version_test.go @@ -0,0 +1,84 @@ +package version + +import ( + "fmt" + "testing" +) + +func TestVersionFunctions(t *testing.T) { + origVersion := Version + origBuildDate := BuildDate + origCommit := Commit + defer func() { + Version = origVersion + BuildDate = origBuildDate + Commit = origCommit + }() + + tests := []struct { + name string + version string + buildDate string + commit string + wantFull string + wantShort string + }{ + { + name: "Default dev version", + version: "dev", + buildDate: "unknown", + commit: "unknown", + wantFull: "tunnel_pls dev (commit: unknown, built: unknown)", + wantShort: "dev", + }, + { + name: "Release version", + version: "v1.0.0", + buildDate: "2026-01-23", + commit: "abcdef123", + wantFull: "tunnel_pls v1.0.0 (commit: abcdef123, built: 2026-01-23)", + wantShort: "v1.0.0", + }, + { + name: "Empty values", + version: "", + buildDate: "", + commit: "", + wantFull: "tunnel_pls (commit: , built: )", + wantShort: "", + }, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + Version = tt.version + BuildDate = tt.buildDate + Commit = tt.commit + + gotFull := GetVersion() + if gotFull != tt.wantFull { + t.Errorf("GetVersion() = %q, want %q", gotFull, tt.wantFull) + } + + gotShort := GetShortVersion() + if gotShort != tt.wantShort { + t.Errorf("GetShortVersion() = %q, want %q", gotShort, tt.wantShort) + } + }) + } +} + +func TestGetVersion_Format(t *testing.T) { + v := "1.2.3" + c := "brainrot" + d := "now" + + Version = v + Commit = c + BuildDate = d + + expected := fmt.Sprintf("tunnel_pls %s (commit: %s, built: %s)", v, c, d) + if GetVersion() != expected { + t.Errorf("GetVersion() formatting mismatch") + } +}