version_test.go 838 B

12345678910111213141516171819202122232425262728293031323334353637
  1. package utils
  2. import (
  3. "testing"
  4. "github.com/stretchr/testify/assert"
  5. )
  6. func TestCustomCompareVersions(t *testing.T) {
  7. cases := []struct {
  8. ver1 string
  9. ver2 string
  10. operator string
  11. out bool
  12. }{
  13. {"1", "1.0.1", ">", false},
  14. {"1", "0.9.9", ">", true},
  15. {"1", "1.0-1", "<", true},
  16. {"1.0.1", "1-0.1", "<", false},
  17. {"1.0.1", "1.0.1", "==", true},
  18. {"1.0.1", "1.0.2", "==", false},
  19. {"1.1-1", "1.0.2", "==", false},
  20. {"1.0.1", "1.0.2", ">=", false},
  21. {"1.0.2", "1.0.2", ">=", true},
  22. {"1.0.3", "1.0.2", ">=", true},
  23. {"1.0.4", "1.0.2", "<=", false},
  24. {"1.0.4", "1.0.6", "<=", true},
  25. {"1.0.4", "1.0.4", "<=", true},
  26. }
  27. for _, each := range cases {
  28. t.Run(each.ver1, func(t *testing.T) {
  29. actual := CompareVersions(each.ver1, each.operator, each.ver2)
  30. assert.Equal(t, each.out, actual)
  31. })
  32. }
  33. }