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  }