version_diff_test.go 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. //go:build !integration
  2. // +build !integration
  3. package query
  4. import (
  5. "testing"
  6. "github.com/Jguer/yay/v12/pkg/text"
  7. )
  8. func TestVersionDiff(t *testing.T) {
  9. testCases := []struct {
  10. name string
  11. a string
  12. b string
  13. wantDiff string
  14. }{
  15. {
  16. name: "1.0.0-1 -> 1.0.0-2",
  17. a: "1.0.0-1",
  18. b: "1.0.0-2",
  19. wantDiff: "1.0.0-" + text.Red("1") + " " + "1.0.0-" + text.Green("2"),
  20. },
  21. {
  22. name: "1.0.0-1 -> 1.0.1-1",
  23. a: "1.0.0-1",
  24. b: "1.0.1-1",
  25. wantDiff: "1.0." + text.Red("0-1") + " " + "1.0." + text.Green("1-1"),
  26. },
  27. {
  28. name: "3.0.0~alpha7-3 -> 3.0.0~alpha7-4",
  29. a: "3.0.0~alpha7-3",
  30. b: "3.0.0~alpha7-4",
  31. wantDiff: "3.0.0~alpha7-" + text.Red("3") + " " + "3.0.0~alpha7-" + text.Green("4"),
  32. },
  33. {
  34. name: "3.0.0~beta7-3 -> 3.0.0~beta8-3",
  35. a: "3.0.0~beta7-3",
  36. b: "3.0.0~beta8-3",
  37. wantDiff: "3.0.0~" + text.Red("beta7-3") + " " + "3.0.0~" + text.Green("beta8-3"),
  38. },
  39. {
  40. name: "23.04.r131.b1bfe05-1 -> 23.04.r131.b1bfe07-1",
  41. a: "23.04.r131.b1bfe05-1",
  42. b: "23.04.r131.b1bfe07-1",
  43. wantDiff: "23.04.r131." + text.Red("b1bfe05-1") + " " + "23.04.r131." + text.Green("b1bfe07-1"),
  44. },
  45. {
  46. name: "1.0.arch0-1 -> 1.0.arch1-2",
  47. a: "1.0.arch0-1",
  48. b: "1.0.arch1-2",
  49. wantDiff: "1.0." + text.Red("arch0-1") + " " + "1.0." + text.Green("arch1-2"),
  50. },
  51. }
  52. for _, tc := range testCases {
  53. t.Run(tc.name, func(t *testing.T) {
  54. originalUseColor := text.UseColor
  55. text.UseColor = true
  56. left, right := GetVersionDiff(tc.a, tc.b)
  57. gotDiff := left + " " + right
  58. if gotDiff != tc.wantDiff {
  59. t.Errorf("VersionDiff(%s, %s) = %s, want %s", tc.a, tc.b, gotDiff, tc.wantDiff)
  60. }
  61. text.UseColor = originalUseColor
  62. })
  63. }
  64. }