github.com/hairyhenderson/gomplate/v4@v4.0.0-pre-2.0.20240520121557-362f058f0c93/version/gen/vgen_test.go (about)

     1  package main
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/Masterminds/semver/v3"
     7  	"github.com/stretchr/testify/require"
     8  )
     9  
    10  func TestVersion(t *testing.T) {
    11  	testdata := []struct {
    12  		desc, latest string
    13  		expected     string
    14  	}{
    15  		{"v1.0.0", "", "1.0.0"},
    16  		{"v1.0.0-1-gabcdef0", "v1.0.0", "1.0.1-1-gabcdef0"},
    17  		{"v1.0.0-1-gabcdef0", "v2.3.4", "2.3.5-1-gabcdef0"},
    18  		{"v1.0.0+123", "v2.3.4", "2.3.5+123"},
    19  	}
    20  
    21  	for _, td := range testdata {
    22  		var l *semver.Version
    23  		if td.latest != "" {
    24  			l = semver.MustParse(td.latest)
    25  		}
    26  
    27  		ver := version(semver.MustParse(td.desc), l)
    28  		require.Equal(t, td.expected, ver.String())
    29  	}
    30  }