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 }