github.com/jenkins-x/jx/v2@v2.1.155/pkg/cmd/step/step_stash_integration_test.go (about) 1 // +build integration 2 3 package step_test 4 5 import ( 6 "io/ioutil" 7 "os" 8 "path/filepath" 9 "testing" 10 11 step2 "github.com/jenkins-x/jx/v2/pkg/cmd/opts/step" 12 "github.com/jenkins-x/jx/v2/pkg/cmd/step" 13 "github.com/jenkins-x/jx/v2/pkg/cmd/testhelpers" 14 "github.com/jenkins-x/jx/v2/pkg/util" 15 16 "github.com/jenkins-x/jx/v2/pkg/cmd/opts" 17 "github.com/jenkins-x/jx/v2/pkg/gits" 18 helm_test "github.com/jenkins-x/jx/v2/pkg/helm/mocks" 19 "github.com/jenkins-x/jx/v2/pkg/tests" 20 21 "github.com/stretchr/testify/assert" 22 ) 23 24 func TestStepStash(t *testing.T) { 25 originalJxHome, tempJxHome, err := testhelpers.CreateTestJxHomeDir() 26 assert.NoError(t, err) 27 defer func() { 28 err := testhelpers.CleanupTestJxHomeDir(originalJxHome, tempJxHome) 29 assert.NoError(t, err) 30 }() 31 originalKubeCfg, tempKubeCfg, err := testhelpers.CreateTestKubeConfigDir() 32 assert.NoError(t, err) 33 defer func() { 34 err := testhelpers.CleanupTestKubeConfigDir(originalKubeCfg, tempKubeCfg) 35 assert.NoError(t, err) 36 }() 37 38 tempDir, err := ioutil.TempDir("", "test-step-collect") 39 assert.NoError(t, err) 40 41 testData := "test_data/step_collect/junit.xml" 42 43 o := &step.StepStashOptions{ 44 StepOptions: step2.StepOptions{ 45 CommonOptions: &opts.CommonOptions{}, 46 }, 47 } 48 o.StorageLocation.Classifier = "tests" 49 o.StorageLocation.BucketURL = "file://" + tempDir 50 o.ToPath = "output" 51 o.Pattern = []string{testData} 52 o.ProjectGitURL = "https://github.com/jenkins-x/dummy-repo.git" 53 o.ProjectBranch = "master" 54 testhelpers.ConfigureTestOptions(o.CommonOptions, &gits.GitFake{}, helm_test.NewMockHelmer()) 55 56 err = o.Run() 57 assert.NoError(t, err) 58 59 generatedFile := filepath.Join(tempDir, o.ToPath, testData) 60 assert.FileExists(t, generatedFile) 61 62 tests.AssertTextFileContentsEqual(t, testData, generatedFile) 63 } 64 65 func TestStepStashBranchNameFromEnv(t *testing.T) { 66 originalJxHome, tempJxHome, err := testhelpers.CreateTestJxHomeDir() 67 assert.NoError(t, err) 68 defer func() { 69 err := testhelpers.CleanupTestJxHomeDir(originalJxHome, tempJxHome) 70 assert.NoError(t, err) 71 }() 72 originalKubeCfg, tempKubeCfg, err := testhelpers.CreateTestKubeConfigDir() 73 assert.NoError(t, err) 74 defer func() { 75 err := testhelpers.CleanupTestKubeConfigDir(originalKubeCfg, tempKubeCfg) 76 assert.NoError(t, err) 77 }() 78 79 origBranchName := os.Getenv(util.EnvVarBranchName) 80 _ = os.Setenv(util.EnvVarBranchName, "master") 81 origBuildID := os.Getenv("BUILD_ID") 82 _ = os.Unsetenv("BUILD_ID") 83 origJxBuildNum := os.Getenv("JX_BUILD_NUMBER") 84 _ = os.Unsetenv("JX_BUILD_NUMBER") 85 origBuildNum := os.Getenv("BUILD_NUMBER") 86 _ = os.Setenv("BUILD_NUMBER", "4") 87 defer func() { 88 if origBranchName != "" { 89 _ = os.Setenv(util.EnvVarBranchName, origBranchName) 90 } else { 91 _ = os.Unsetenv(util.EnvVarBranchName) 92 } 93 if origBuildID != "" { 94 _ = os.Setenv("BUILD_ID", origBuildID) 95 } else { 96 _ = os.Unsetenv("BUILD_ID") 97 } 98 if origBuildNum != "" { 99 _ = os.Setenv("BUILD_NUMBER", origBuildNum) 100 } else { 101 _ = os.Unsetenv("BUILD_NUMBER") 102 } 103 if origJxBuildNum != "" { 104 _ = os.Setenv("JX_BUILD_NUMBER", origJxBuildNum) 105 } else { 106 _ = os.Unsetenv("JX_BUILD_NUMBER") 107 } 108 }() 109 110 tempDir, err := ioutil.TempDir("", "test-step-collect") 111 assert.NoError(t, err) 112 113 testData := "test_data/step_collect/junit.xml" 114 115 o := &step.StepStashOptions{ 116 StepOptions: step2.StepOptions{ 117 CommonOptions: &opts.CommonOptions{}, 118 }, 119 } 120 o.StorageLocation.Classifier = "tests" 121 o.StorageLocation.BucketURL = "file://" + tempDir 122 o.StorageLocation.GitBranch = "gh-pages" 123 o.Pattern = []string{testData} 124 o.ProjectGitURL = "https://github.com/jenkins-x/dummy-repo.git" 125 testhelpers.ConfigureTestOptions(o.CommonOptions, &gits.GitFake{}, helm_test.NewMockHelmer()) 126 127 err = o.Run() 128 assert.NoError(t, err) 129 130 outputPath := filepath.Join("jenkins-x", o.StorageLocation.Classifier, "jenkins-x", "dummy-repo", "master", "4") 131 generatedFile := filepath.Join(tempDir, outputPath, testData) 132 assert.FileExists(t, generatedFile) 133 134 tests.AssertTextFileContentsEqual(t, testData, generatedFile) 135 }