From 4486b6659640102dd542fea007f4c33ac02511ff Mon Sep 17 00:00:00 2001 From: s Date: Tue, 4 Nov 2025 11:06:35 -0500 Subject: feat: add version checking and auto-update functionality --- internal/utils/version_test.go | 52 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 internal/utils/version_test.go (limited to 'internal/utils/version_test.go') diff --git a/internal/utils/version_test.go b/internal/utils/version_test.go new file mode 100644 index 0000000..dc1627d --- /dev/null +++ b/internal/utils/version_test.go @@ -0,0 +1,52 @@ +package utils + +import "testing" + +func TestIsNewerVersion(t *testing.T) { + tests := []struct { + name string + remote string + local string + expected bool + }{ + { + name: "newer version available", + remote: "v0.2.0", + local: "v0.1.0", + expected: true, + }, + { + name: "same version", + remote: "v0.1.0", + local: "v0.1.0", + expected: false, + }, + { + name: "local is newer", + remote: "v0.1.0", + local: "v0.2.0", + expected: false, + }, + { + name: "without v prefix", + remote: "0.2.0", + local: "0.1.0", + expected: true, + }, + { + name: "mixed prefix", + remote: "v0.2.0", + local: "0.1.0", + expected: true, + }, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + result := isNewerVersion(tt.remote, tt.local) + if result != tt.expected { + t.Errorf("isNewerVersion(%s, %s) = %v, expected %v", tt.remote, tt.local, result, tt.expected) + } + }) + } +} -- cgit v1.2.3