github.com/argoproj/argo-cd/v2@v2.10.9/util/helm/index_test.go (about) 1 package helm 2 3 import ( 4 "testing" 5 6 "github.com/Masterminds/semver/v3" 7 "github.com/stretchr/testify/assert" 8 ) 9 10 var index = Index{ 11 Entries: map[string]Entries{ 12 "argo-cd": { 13 {Version: "~0.7.3"}, 14 {Version: "0.7.2"}, 15 {Version: "0.7.1"}, 16 {Version: "0.5.4"}, 17 {Version: "0.5.3"}, 18 {Version: "0.5.2"}, 19 {Version: "~0.5.2"}, 20 {Version: "0.5.1"}, 21 {Version: "0.5.0"}, 22 }, 23 }, 24 } 25 26 func TestIndex_GetEntries(t *testing.T) { 27 t.Run("NotFound", func(t *testing.T) { 28 _, err := index.GetEntries("foo") 29 assert.EqualError(t, err, "chart 'foo' not found in index") 30 31 }) 32 t.Run("Found", func(t *testing.T) { 33 entries, err := index.GetEntries("argo-cd") 34 assert.NoError(t, err) 35 assert.Len(t, entries, 9) 36 }) 37 } 38 39 func TestEntries_MaxVersion(t *testing.T) { 40 entries, _ := index.GetEntries("argo-cd") 41 t.Run("NotFound", func(t *testing.T) { 42 constraints, _ := semver.NewConstraint("0.8.1") 43 _, err := entries.MaxVersion(constraints) 44 assert.EqualError(t, err, "constraint not found in index") 45 46 }) 47 t.Run("Exact", func(t *testing.T) { 48 constraints, _ := semver.NewConstraint("0.5.3") 49 version, err := entries.MaxVersion(constraints) 50 assert.NoError(t, err) 51 assert.Equal(t, semver.MustParse("0.5.3"), version) 52 53 }) 54 t.Run("Constraint", func(t *testing.T) { 55 constraints, _ := semver.NewConstraint("> 0.5.3") 56 version, err := entries.MaxVersion(constraints) 57 assert.NoError(t, err) 58 assert.Equal(t, semver.MustParse("0.7.2"), version) 59 }) 60 t.Run("Constraint", func(t *testing.T) { 61 constraints, _ := semver.NewConstraint("> 0.0.0") 62 version, err := entries.MaxVersion(constraints) 63 assert.NoError(t, err) 64 assert.Equal(t, semver.MustParse("0.7.2"), version) 65 }) 66 t.Run("Constraint", func(t *testing.T) { 67 constraints, _ := semver.NewConstraint(">0.5.0,<0.7.0") 68 version, err := entries.MaxVersion(constraints) 69 assert.NoError(t, err) 70 assert.Equal(t, semver.MustParse("0.5.4"), version) 71 }) 72 t.Run("Constraint", func(t *testing.T) { 73 constraints, _ := semver.NewConstraint("0.7.*") 74 version, err := entries.MaxVersion(constraints) 75 assert.NoError(t, err) 76 assert.Equal(t, semver.MustParse("0.7.2"), version) 77 }) 78 t.Run("Constraint", func(t *testing.T) { 79 constraints, _ := semver.NewConstraint("*") 80 version, err := entries.MaxVersion(constraints) 81 assert.NoError(t, err) 82 assert.Equal(t, semver.MustParse("0.7.2"), version) 83 }) 84 }