| 1234567891011121314151617181920212223242526272829303132333435363738394041 |
- package service
- import "testing"
- func TestIsNewerVersion(t *testing.T) {
- cases := []struct {
- latest string
- current string
- want bool
- }{
- {"v2.9.4", "2.9.3", true},
- {"v2.10.0", "2.9.9", true},
- {"v2.9.3", "2.9.3", false},
- {"v2.9.2", "2.9.3", false},
- {"v3.0.0", "2.9.3", true},
- }
- for _, tc := range cases {
- if got := isNewerVersion(tc.latest, tc.current); got != tc.want {
- t.Fatalf("isNewerVersion(%q, %q) = %v, want %v", tc.latest, tc.current, got, tc.want)
- }
- }
- }
- func TestCompareVersionStringsRejectsUnexpectedFormats(t *testing.T) {
- if _, ok := compareVersionStrings("latest", "2.9.3"); ok {
- t.Fatal("expected non-semver latest tag to be rejected")
- }
- if _, ok := compareVersionStrings("v2.9", "2.9.3"); ok {
- t.Fatal("expected short version to be rejected")
- }
- }
- func TestShellQuote(t *testing.T) {
- if got := shellQuote("/usr/bin/curl"); got != "'/usr/bin/curl'" {
- t.Fatalf("unexpected quote result: %s", got)
- }
- if got := shellQuote("/tmp/a'b"); got != "'/tmp/a'\\''b'" {
- t.Fatalf("unexpected quote result with single quote: %s", got)
- }
- }
|