summaryrefslogtreecommitdiffstats
path: root/internal/utils/version_test.go
diff options
context:
space:
mode:
authors <[email protected]>2025-11-04 11:06:35 -0500
committers <[email protected]>2025-11-04 11:06:35 -0500
commit4486b6659640102dd542fea007f4c33ac02511ff (patch)
tree3e991f3722e3b0062a6078078ff6aa1478c3ab00 /internal/utils/version_test.go
parent3c06eede8ac8cb79272601aad3b2d3359657443a (diff)
downloaddborg-4486b6659640102dd542fea007f4c33ac02511ff.tar.gz
dborg-4486b6659640102dd542fea007f4c33ac02511ff.zip
feat: add version checking and auto-update functionality
Diffstat (limited to 'internal/utils/version_test.go')
-rw-r--r--internal/utils/version_test.go52
1 files changed, 52 insertions, 0 deletions
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)
+ }
+ })
+ }
+}