github.com/octohelm/cuekit@v0.0.0-20240424021256-e7df8d743066/pkg/version/version_test.go (about)

     1  package version
     2  
     3  import (
     4  	"testing"
     5  	"time"
     6  
     7  	. "github.com/octohelm/x/testing"
     8  	"golang.org/x/mod/module"
     9  )
    10  
    11  func TestConvert(t *testing.T) {
    12  	mustTime := func(s string) time.Time {
    13  		t, _ := time.Parse(module.PseudoVersionTimestampFormat, s)
    14  		return t
    15  	}
    16  
    17  	t.Run("when v0.0.0", func(t *testing.T) {
    18  		v := Convert(
    19  			"v0.0.0-20230809023744-57fc047576ed",
    20  			mustTime("20230809023744"),
    21  			"57fc047576ed",
    22  			false,
    23  		)
    24  
    25  		Expect(t, v, Equal("v0.0.0-20230809023744-57fc047576ed"))
    26  
    27  		t.Run("when dirty", func(t *testing.T) {
    28  			v := Convert(
    29  				"v0.0.0-20230809023744-57fc047576ed",
    30  				mustTime("20230809023744"),
    31  				"57fc047576ed",
    32  				true,
    33  			)
    34  
    35  			Expect(t, v, Equal("v0.0.0-dirty.0.20230809023744-57fc047576ed"))
    36  		})
    37  	})
    38  
    39  	t.Run("when vX.Y.Z", func(t *testing.T) {
    40  		v := Convert(
    41  			"v1.1.0",
    42  			mustTime("20230809023744"),
    43  			"57fc047576ed",
    44  			false,
    45  		)
    46  
    47  		Expect(t, v, Equal("v1.1.0-20230809023744-57fc047576ed"))
    48  
    49  		t.Run("when dirty", func(t *testing.T) {
    50  			v := Convert(
    51  				"v1.1.0",
    52  				mustTime("20230809023744"),
    53  				"57fc047576ed",
    54  				true,
    55  			)
    56  
    57  			Expect(t, v, Equal("v1.1.0-dirty.0.20230809023744-57fc047576ed"))
    58  		})
    59  	})
    60  
    61  	t.Run("when vX.Y.(Z+1)-0", func(t *testing.T) {
    62  		v := Convert(
    63  			"v1.1.1-0.20230809023744-57fc047576ed",
    64  			mustTime("20230809023744"),
    65  			"57fc047576ed",
    66  			false,
    67  		)
    68  
    69  		Expect(t, v, Equal("v1.1.1-0.20230809023744-57fc047576ed"))
    70  
    71  		t.Run("when dirty", func(t *testing.T) {
    72  			v := Convert(
    73  				"v1.1.1-0.20230809023744-57fc047576ed",
    74  				mustTime("20230809023744"),
    75  				"57fc047576ed",
    76  				true,
    77  			)
    78  
    79  			Expect(t, v, Equal("v1.1.0-dirty.0.20230809023744-57fc047576ed"))
    80  		})
    81  	})
    82  }