package resources import ( "strings" "testing" "github.com/databricks/databricks-sdk-go/service/pipelines" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" ) func TestPipelineMergeClusters(t *testing.T) { p := &Pipeline{ PipelineSpec: &pipelines.PipelineSpec{ Clusters: []pipelines.PipelineCluster{ { NodeTypeId: "i3.xlarge", NumWorkers: 2, PolicyId: "1234", }, { Label: "maintenance", NodeTypeId: "i3.2xlarge", }, { NodeTypeId: "i3.2xlarge", NumWorkers: 4, }, }, }, } err := p.MergeClusters() require.NoError(t, err) assert.Len(t, p.Clusters, 2) assert.Equal(t, "default", p.Clusters[0].Label) assert.Equal(t, "maintenance", p.Clusters[1].Label) // The default cluster was merged with a subsequent one. pc0 := p.Clusters[0] assert.Equal(t, "i3.2xlarge", pc0.NodeTypeId) assert.Equal(t, 4, pc0.NumWorkers) assert.Equal(t, "1234", pc0.PolicyId) // The maintenance cluster was left untouched. pc1 := p.Clusters[1] assert.Equal(t, "i3.2xlarge", pc1.NodeTypeId) } func TestPipelineMergeClustersCaseInsensitive(t *testing.T) { p := &Pipeline{ PipelineSpec: &pipelines.PipelineSpec{ Clusters: []pipelines.PipelineCluster{ { Label: "default", NumWorkers: 2, }, { Label: "DEFAULT", NumWorkers: 4, }, }, }, } err := p.MergeClusters() require.NoError(t, err) assert.Len(t, p.Clusters, 1) // The default cluster was merged with a subsequent one. pc0 := p.Clusters[0] assert.Equal(t, "default", strings.ToLower(pc0.Label)) assert.Equal(t, 4, pc0.NumWorkers) }