github.com/ouraigua/jenkins-library@v0.0.0-20231028010029-fbeaf2f3aa9b/cmd/abapAddonAssemblyKitCheckCVs_test.go (about)

     1  //go:build unit
     2  // +build unit
     3  
     4  package cmd
     5  
     6  import (
     7  	"encoding/json"
     8  	"testing"
     9  
    10  	"github.com/SAP/jenkins-library/pkg/abap/aakaas"
    11  	"github.com/SAP/jenkins-library/pkg/abaputils"
    12  	"github.com/stretchr/testify/assert"
    13  )
    14  
    15  func TestCheckCVsStep(t *testing.T) {
    16  	var config abapAddonAssemblyKitCheckCVsOptions
    17  	var cpe abapAddonAssemblyKitCheckCVsCommonPipelineEnvironment
    18  	bundle := aakaas.NewAakBundleMock()
    19  	bundle.SetBody(aakaas.ResponseCheckCVs)
    20  	utils := bundle.GetUtils()
    21  	config.Username = "dummyUser"
    22  	config.Password = "dummyPassword"
    23  	t.Run("step success", func(t *testing.T) {
    24  		config.AddonDescriptorFileName = "success"
    25  		err := runAbapAddonAssemblyKitCheckCVs(&config, nil, &utils, &cpe)
    26  		assert.NoError(t, err, "Did not expect error")
    27  		var addonDescriptorFinal abaputils.AddonDescriptor
    28  		err = json.Unmarshal([]byte(cpe.abap.addonDescriptor), &addonDescriptorFinal)
    29  		assert.NoError(t, err)
    30  		assert.Equal(t, "0001", addonDescriptorFinal.Repositories[0].Version)
    31  		assert.Equal(t, "0002", addonDescriptorFinal.Repositories[0].SpLevel)
    32  		assert.Equal(t, "0003", addonDescriptorFinal.Repositories[0].PatchLevel)
    33  		assert.Equal(t, "HUGO1234", addonDescriptorFinal.Repositories[0].CommitID)
    34  	})
    35  	t.Run("step error - in validate(no CommitID)", func(t *testing.T) {
    36  		config.AddonDescriptorFileName = "noCommitID"
    37  		err := runAbapAddonAssemblyKitCheckCVs(&config, nil, &utils, &cpe)
    38  		assert.Error(t, err, "Must end with error")
    39  		assert.Contains(t, err.Error(), "CommitID missing in repo")
    40  	})
    41  	t.Run("step error - in ReadAddonDescriptor", func(t *testing.T) {
    42  		config.AddonDescriptorFileName = "failing"
    43  		err := runAbapAddonAssemblyKitCheckCVs(&config, nil, &utils, &cpe)
    44  		assert.Error(t, err, "Must end with error")
    45  		assert.Contains(t, "error in ReadAddonDescriptor", err.Error())
    46  	})
    47  	t.Run("step error - in validate", func(t *testing.T) {
    48  		config.AddonDescriptorFileName = "success"
    49  		bundle.SetBody("ErrorBody")
    50  		bundle.SetError("error during validation")
    51  		err := runAbapAddonAssemblyKitCheckCVs(&config, nil, &utils, &cpe)
    52  		assert.Error(t, err, "Must end with error")
    53  	})
    54  }
    55  
    56  func TestCombineYAMLRepositoriesWithCPEProduct(t *testing.T) {
    57  	t.Run("test combineYAMLRepositoriesWithCPEProduct", func(t *testing.T) {
    58  		addonDescriptor := abaputils.AddonDescriptor{
    59  			Repositories: []abaputils.Repository{
    60  				{
    61  					Name:        "/DRNMSPC/COMP01",
    62  					VersionYAML: "1.2.3",
    63  				},
    64  				{
    65  					Name:        "/DRNMSPC/COMP02",
    66  					VersionYAML: "3.2.1",
    67  				},
    68  			},
    69  		}
    70  		addonDescriptorFromCPE := abaputils.AddonDescriptor{
    71  			AddonProduct:     "/DRNMSP/PROD",
    72  			AddonVersionYAML: "1.2.3",
    73  		}
    74  		finalAddonDescriptor := combineYAMLRepositoriesWithCPEProduct(addonDescriptor, addonDescriptorFromCPE)
    75  		assert.Equal(t, "/DRNMSP/PROD", finalAddonDescriptor.AddonProduct)
    76  		assert.Equal(t, "1.2.3", finalAddonDescriptor.AddonVersionYAML)
    77  		assert.Equal(t, "/DRNMSPC/COMP01", finalAddonDescriptor.Repositories[0].Name)
    78  		assert.Equal(t, "/DRNMSPC/COMP02", finalAddonDescriptor.Repositories[1].Name)
    79  		assert.Equal(t, "1.2.3", finalAddonDescriptor.Repositories[0].VersionYAML)
    80  		assert.Equal(t, "3.2.1", finalAddonDescriptor.Repositories[1].VersionYAML)
    81  	})
    82  }