github.com/kubeshop/testkube@v1.17.23/pkg/semver/version_test.go (about)

     1  package semver
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/stretchr/testify/assert"
     7  )
     8  
     9  func TestVersioning(t *testing.T) {
    10  
    11  	t.Run("test get newest version with v prefix", func(t *testing.T) {
    12  		versions := []string{
    13  			"v0.1.1",
    14  			"0.3.2",
    15  			"v0.3.3",
    16  			"0.2.2",
    17  		}
    18  
    19  		newest := GetNewest(versions)
    20  		assert.Equal(t, "0.3.3", newest)
    21  
    22  	})
    23  
    24  	t.Run("next - bump patch", func(t *testing.T) {
    25  		next, err := Next("0.0.5", Patch)
    26  		assert.NoError(t, err)
    27  		assert.Equal(t, "0.0.6", next)
    28  	})
    29  
    30  	t.Run("next - bump minor", func(t *testing.T) {
    31  		next, err := Next("0.0.5", Minor)
    32  		assert.NoError(t, err)
    33  		assert.Equal(t, "0.1.0", next)
    34  	})
    35  
    36  	t.Run("next - bump major", func(t *testing.T) {
    37  		next, err := Next("0.0.5", Major)
    38  		assert.NoError(t, err)
    39  		assert.Equal(t, "1.0.0", next)
    40  	})
    41  
    42  	t.Run("next - bump prerelease number", func(t *testing.T) {
    43  		next, err := NextPrerelease("0.0.5-beta001")
    44  		assert.NoError(t, err)
    45  		assert.Equal(t, "0.0.5-beta002", next)
    46  	})
    47  }
    48  
    49  func TestNextPrerelease(t *testing.T) {
    50  
    51  	t.Run("beta postfix", func(t *testing.T) {
    52  		bumped, err := NextPrerelease("0.0.1-beta008")
    53  		assert.NoError(t, err)
    54  		assert.Equal(t, "0.0.1-beta009", bumped)
    55  	})
    56  
    57  	t.Run("alpha postfix", func(t *testing.T) {
    58  		bumped, err := NextPrerelease("0.0.1-alpha009")
    59  		assert.NoError(t, err)
    60  		assert.Equal(t, "0.0.1-alpha010", bumped)
    61  	})
    62  }