1
0

panel_test.go 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. package service
  2. import "testing"
  3. func TestIsNewerVersion(t *testing.T) {
  4. cases := []struct {
  5. latest string
  6. current string
  7. want bool
  8. }{
  9. {"v2.9.4", "2.9.3", true},
  10. {"v2.10.0", "2.9.9", true},
  11. {"v2.9.3", "2.9.3", false},
  12. {"v2.9.2", "2.9.3", false},
  13. {"v3.0.0", "2.9.3", true},
  14. }
  15. for _, tc := range cases {
  16. if got := isNewerVersion(tc.latest, tc.current); got != tc.want {
  17. t.Fatalf("isNewerVersion(%q, %q) = %v, want %v", tc.latest, tc.current, got, tc.want)
  18. }
  19. }
  20. }
  21. func TestCompareVersionStringsRejectsUnexpectedFormats(t *testing.T) {
  22. if _, ok := compareVersionStrings("latest", "2.9.3"); ok {
  23. t.Fatal("expected non-semver latest tag to be rejected")
  24. }
  25. if _, ok := compareVersionStrings("v2.9", "2.9.3"); ok {
  26. t.Fatal("expected short version to be rejected")
  27. }
  28. }
  29. func TestShellQuote(t *testing.T) {
  30. if got := shellQuote("/usr/bin/curl"); got != "'/usr/bin/curl'" {
  31. t.Fatalf("unexpected quote result: %s", got)
  32. }
  33. if got := shellQuote("/tmp/a'b"); got != "'/tmp/a'\\''b'" {
  34. t.Fatalf("unexpected quote result with single quote: %s", got)
  35. }
  36. }