github.com/olli-ai/jx/v2@v2.0.400-0.20210921045218-14731b4dd448/pkg/cmd/step/step_next_version_integration_test.go (about) 1 // +build integration 2 3 package step_test 4 5 import ( 6 "io/ioutil" 7 "os" 8 "path" 9 "testing" 10 11 step2 "github.com/olli-ai/jx/v2/pkg/cmd/opts/step" 12 "github.com/olli-ai/jx/v2/pkg/cmd/step" 13 "github.com/olli-ai/jx/v2/pkg/cmd/testhelpers" 14 15 "github.com/olli-ai/jx/v2/pkg/cmd/opts" 16 "github.com/olli-ai/jx/v2/pkg/gits" 17 "github.com/olli-ai/jx/v2/pkg/tests" 18 "github.com/olli-ai/jx/v2/pkg/util" 19 "github.com/stretchr/testify/assert" 20 ) 21 22 func TestSetVersionJavascript(t *testing.T) { 23 originalJxHome, tempJxHome, err := testhelpers.CreateTestJxHomeDir() 24 assert.NoError(t, err) 25 defer func() { 26 err := testhelpers.CleanupTestJxHomeDir(originalJxHome, tempJxHome) 27 assert.NoError(t, err) 28 }() 29 originalKubeCfg, tempKubeCfg, err := testhelpers.CreateTestKubeConfigDir() 30 assert.NoError(t, err) 31 defer func() { 32 err := testhelpers.CleanupTestKubeConfigDir(originalKubeCfg, tempKubeCfg) 33 assert.NoError(t, err) 34 }() 35 36 f, err := ioutil.TempDir("", "test-set-version") 37 assert.NoError(t, err) 38 39 testData := path.Join("test_data", "next_version", "javascript") 40 _, err = os.Stat(testData) 41 assert.NoError(t, err) 42 43 err = util.CopyDir(testData, f, true) 44 assert.NoError(t, err) 45 46 git := gits.NewGitCLI() 47 err = git.Init(f) 48 assert.NoError(t, err) 49 50 o := step.StepNextVersionOptions{ 51 StepOptions: step2.StepOptions{ 52 CommonOptions: &opts.CommonOptions{}, 53 }, 54 } 55 o.Out = tests.Output() 56 o.Dir = f 57 o.Filename = "package.json" 58 o.NewVersion = "1.2.3" 59 err = o.SetVersion() 60 assert.NoError(t, err) 61 62 // root file 63 updatedFile, err := util.LoadBytes(o.Dir, o.Filename) 64 testFile, err := util.LoadBytes(testData, "expected_package.json") 65 66 assert.Equal(t, string(testFile), string(updatedFile), "replaced version") 67 } 68 69 func TestSetVersionChart(t *testing.T) { 70 originalJxHome, tempJxHome, err := testhelpers.CreateTestJxHomeDir() 71 assert.NoError(t, err) 72 defer func() { 73 err := testhelpers.CleanupTestJxHomeDir(originalJxHome, tempJxHome) 74 assert.NoError(t, err) 75 }() 76 originalKubeCfg, tempKubeCfg, err := testhelpers.CreateTestKubeConfigDir() 77 assert.NoError(t, err) 78 defer func() { 79 err := testhelpers.CleanupTestKubeConfigDir(originalKubeCfg, tempKubeCfg) 80 assert.NoError(t, err) 81 }() 82 83 f, err := ioutil.TempDir("", "test-set-version") 84 assert.NoError(t, err) 85 86 testData := path.Join("test_data", "next_version", "helm") 87 _, err = os.Stat(testData) 88 assert.NoError(t, err) 89 90 err = util.CopyDir(testData, f, true) 91 assert.NoError(t, err) 92 93 git := gits.NewGitCLI() 94 err = git.Init(f) 95 assert.NoError(t, err) 96 97 o := step.StepNextVersionOptions{ 98 StepOptions: step2.StepOptions{ 99 CommonOptions: &opts.CommonOptions{}, 100 }, 101 } 102 o.Out = tests.Output() 103 o.Dir = f 104 o.Filename = "Chart.yaml" 105 o.NewVersion = "1.2.3" 106 err = o.SetVersion() 107 assert.NoError(t, err) 108 109 // root file 110 updatedFile, err := util.LoadBytes(o.Dir, o.Filename) 111 testFile, err := util.LoadBytes(testData, "expected_Chart.yaml") 112 113 assert.Equal(t, string(testFile), string(updatedFile), "replaced version") 114 } 115 116 func TestSetVersionChartHelm3(t *testing.T) { 117 originalJxHome, tempJxHome, err := testhelpers.CreateTestJxHomeDir() 118 assert.NoError(t, err) 119 defer func() { 120 err := testhelpers.CleanupTestJxHomeDir(originalJxHome, tempJxHome) 121 assert.NoError(t, err) 122 }() 123 originalKubeCfg, tempKubeCfg, err := testhelpers.CreateTestKubeConfigDir() 124 assert.NoError(t, err) 125 defer func() { 126 err := testhelpers.CleanupTestKubeConfigDir(originalKubeCfg, tempKubeCfg) 127 assert.NoError(t, err) 128 }() 129 130 f, err := ioutil.TempDir("", "test-set-version") 131 assert.NoError(t, err) 132 133 testData := path.Join("test_data", "next_version", "helm3") 134 _, err = os.Stat(testData) 135 assert.NoError(t, err) 136 137 err = util.CopyDir(testData, f, true) 138 assert.NoError(t, err) 139 140 git := gits.NewGitCLI() 141 err = git.Init(f) 142 assert.NoError(t, err) 143 144 o := step.StepNextVersionOptions{ 145 StepOptions: step2.StepOptions{ 146 CommonOptions: &opts.CommonOptions{}, 147 }, 148 } 149 o.Out = tests.Output() 150 o.Dir = f 151 o.Filename = "Chart.yaml" 152 o.NewVersion = "1.2.3" 153 err = o.SetVersion() 154 assert.NoError(t, err) 155 156 // root file 157 updatedFile, err := util.LoadBytes(o.Dir, o.Filename) 158 testFile, err := util.LoadBytes(testData, "expected_Chart.yaml") 159 160 assert.Equal(t, string(testFile), string(updatedFile), "replaced version") 161 } 162 163 func TestRunChartsDir(t *testing.T) { 164 originalJxHome, tempJxHome, err := testhelpers.CreateTestJxHomeDir() 165 assert.NoError(t, err) 166 defer func() { 167 err := testhelpers.CleanupTestJxHomeDir(originalJxHome, tempJxHome) 168 assert.NoError(t, err) 169 }() 170 originalKubeCfg, tempKubeCfg, err := testhelpers.CreateTestKubeConfigDir() 171 assert.NoError(t, err) 172 defer func() { 173 err := testhelpers.CleanupTestKubeConfigDir(originalKubeCfg, tempKubeCfg) 174 assert.NoError(t, err) 175 }() 176 177 f, err := ioutil.TempDir("", "test-run-chartsdir") 178 assert.NoError(t, err) 179 180 testData := path.Join("test_data", "next_version", "charts") 181 _, err = os.Stat(testData) 182 assert.NoError(t, err) 183 184 err = util.CopyDir(testData, f, true) 185 assert.NoError(t, err) 186 187 git := gits.NewGitCLI() 188 err = git.Init(f) 189 assert.NoError(t, err) 190 191 o := step.StepNextVersionOptions{ 192 StepOptions: step2.StepOptions{ 193 CommonOptions: &opts.CommonOptions{}, 194 }, 195 } 196 o.Out = tests.Output() 197 o.Dir = f 198 o.NewVersion = "1.2.3" 199 o.Tag = true 200 o.ChartsDir = path.Join(f, "charts", "foo") 201 o.SetGit(&gits.GitFake{}) 202 203 defer os.Remove("VERSION") 204 205 err = o.Run() 206 assert.NoError(t, err) 207 208 // Check explicit chart has been updated 209 updatedChart, err := util.LoadBytes(o.Dir, "charts/foo/Chart.yaml") 210 expectedUpdatedChart, err := util.LoadBytes(testData, "charts/foo/expected_Chart.yaml") 211 assert.Equal(t, string(updatedChart), string(expectedUpdatedChart), "replaced version") 212 213 // And check no other chart was updated 214 bystanderChart, err := util.LoadBytes(o.Dir, "charts/bar/Chart.yaml") 215 expectedBystanderChart, err := util.LoadBytes(testData, "charts/bar/expected_Chart.yaml") 216 assert.Equal(t, string(bystanderChart), string(expectedBystanderChart), "no version replaced") 217 }