github.com/olli-ai/jx/v2@v2.0.400-0.20210921045218-14731b4dd448/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/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  	"github.com/olli-ai/jx/v2/pkg/util"
    15  
    16  	"github.com/olli-ai/jx/v2/pkg/cmd/opts"
    17  	"github.com/olli-ai/jx/v2/pkg/gits"
    18  	helm_test "github.com/olli-ai/jx/v2/pkg/helm/mocks"
    19  	"github.com/olli-ai/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  }