github.com/olli-ai/jx/v2@v2.0.400-0.20210921045218-14731b4dd448/pkg/cmd/step/step_changelog_test.go (about)

     1  // +build unit
     2  
     3  package step_test
     4  
     5  import (
     6  	"io/ioutil"
     7  	"testing"
     8  
     9  	"github.com/ghodss/yaml"
    10  	v1 "github.com/jenkins-x/jx-api/pkg/apis/jenkins.io/v1"
    11  	"github.com/stretchr/testify/assert"
    12  
    13  	"github.com/olli-ai/jx/v2/pkg/cmd/step"
    14  )
    15  
    16  func TestCollapseDependencyUpdates(t *testing.T) {
    17  	type args struct {
    18  		data string
    19  	}
    20  	tests := []struct {
    21  		name string
    22  		args args
    23  		want string
    24  	}{
    25  		{
    26  			name: "platform",
    27  			args: args{
    28  				data: "test_data/changelog/platform.yaml",
    29  			},
    30  			want: "test_data/changelog/platform.golden.yaml",
    31  		},
    32  		{
    33  			// This one was a real regression seen in environment controller
    34  			name: "environment-controller",
    35  			args: args{
    36  				data: "test_data/changelog2/platform.yaml",
    37  			},
    38  			want: "test_data/changelog2/platform.golden.yaml",
    39  		},
    40  	}
    41  	for _, tt := range tests {
    42  		t.Run(tt.name, func(t *testing.T) {
    43  			ups := make([]v1.DependencyUpdate, 0)
    44  			data, err := ioutil.ReadFile(tt.args.data)
    45  			assert.NoError(t, err)
    46  			err = yaml.Unmarshal(data, &ups)
    47  			assert.NoError(t, err)
    48  			out := step.CollapseDependencyUpdates(ups)
    49  			dataOut, err := yaml.Marshal(out)
    50  			assert.NoError(t, err)
    51  			golden, err := ioutil.ReadFile(tt.want)
    52  			assert.NoError(t, err)
    53  			assert.Equal(t, string(golden), string(dataOut))
    54  		})
    55  	}
    56  }