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

     1  // +build unit
     2  
     3  package opts_test
     4  
     5  import (
     6  	"testing"
     7  
     8  	v1 "github.com/jenkins-x/jx-api/pkg/apis/jenkins.io/v1"
     9  
    10  	clients_test "github.com/olli-ai/jx/v2/pkg/cmd/clients/mocks"
    11  	"github.com/olli-ai/jx/v2/pkg/cmd/testhelpers"
    12  	"github.com/olli-ai/jx/v2/pkg/gits"
    13  	helm_test "github.com/olli-ai/jx/v2/pkg/helm/mocks"
    14  	resources_test "github.com/olli-ai/jx/v2/pkg/kube/resources/mocks"
    15  	"k8s.io/apimachinery/pkg/runtime"
    16  
    17  	"github.com/olli-ai/jx/v2/pkg/cmd/opts"
    18  
    19  	"github.com/stretchr/testify/assert"
    20  )
    21  
    22  func TestParseDependencyUpdateMessage(t *testing.T) {
    23  
    24  	mockFactory := clients_test.NewMockFactory()
    25  	commonOpts := opts.NewCommonOptionsWithFactory(mockFactory)
    26  	mockHelmer := helm_test.NewMockHelmer()
    27  	installerMock := resources_test.NewMockInstaller()
    28  	testhelpers.ConfigureTestOptionsWithResources(&commonOpts,
    29  		[]runtime.Object{},
    30  		[]runtime.Object{},
    31  		gits.NewGitFake(),
    32  		gits.NewFakeProvider(&gits.FakeRepository{
    33  			Owner: "pmuir",
    34  			GitRepo: &gits.GitRepository{
    35  				Name: "brie",
    36  			},
    37  		}),
    38  		mockHelmer,
    39  		installerMock,
    40  	)
    41  	testhelpers.MockFactoryWithKubeClients(mockFactory, &commonOpts)
    42  
    43  	t.Run("full", func(t *testing.T) {
    44  		assertParseDependencyUpdateMessage(t, `chore(dependencies): update https://github.com/pmuir/brie from 1.2.3 to 1.2.4
    45  
    46  update BRIE_VERSION to 1.2.4`, v1.DependencyUpdate{
    47  			DependencyUpdateDetails: v1.DependencyUpdateDetails{
    48  				Owner:       "pmuir",
    49  				Repo:        "brie",
    50  				ToVersion:   "1.2.4",
    51  				FromVersion: "1.2.3",
    52  				Host:        "github.com",
    53  			},
    54  		}, &commonOpts)
    55  	})
    56  	t.Run("with-dot", func(t *testing.T) {
    57  		assertParseDependencyUpdateMessage(t, `chore(dependencies): update https://github.com/pmuir/brie.git from 1.2.3 to 1.2.4
    58  
    59  update BRIE_VERSION to 1.2.4`, v1.DependencyUpdate{
    60  			DependencyUpdateDetails: v1.DependencyUpdateDetails{
    61  				Owner:       "pmuir",
    62  				Repo:        "brie",
    63  				ToVersion:   "1.2.4",
    64  				FromVersion: "1.2.3",
    65  				Host:        "github.com",
    66  			},
    67  		}, &commonOpts)
    68  	})
    69  	t.Run("simple", func(t *testing.T) {
    70  		assertParseDependencyUpdateMessage(t, `chore(dependencies): update pmuir/brie from 1.2.3 to 1.2.4
    71  
    72  update BRIE_VERSION to 1.2.4`, v1.DependencyUpdate{
    73  			DependencyUpdateDetails: v1.DependencyUpdateDetails{
    74  
    75  				Owner:       "pmuir",
    76  				Repo:        "brie",
    77  				ToVersion:   "1.2.4",
    78  				FromVersion: "1.2.3",
    79  				Host:        "fake.git",
    80  			},
    81  		}, &commonOpts)
    82  	})
    83  	t.Run("fullbump", func(t *testing.T) {
    84  		assertParseDependencyUpdateMessage(t, `chore(deps): bump https://github.com/pmuir/brie from 1.2.3 to 1.2.4
    85  
    86  update BRIE_VERSION to 1.2.4`, v1.DependencyUpdate{
    87  			DependencyUpdateDetails: v1.DependencyUpdateDetails{
    88  				Owner:       "pmuir",
    89  				Repo:        "brie",
    90  				ToVersion:   "1.2.4",
    91  				FromVersion: "1.2.3",
    92  				Host:        "github.com",
    93  			},
    94  		}, &commonOpts)
    95  	})
    96  	t.Run("simplebump", func(t *testing.T) {
    97  		assertParseDependencyUpdateMessage(t, `chore(deps): bump pmuir/brie from 1.2.3 to 1.2.4
    98  
    99  update BRIE_VERSION to 1.2.4`, v1.DependencyUpdate{
   100  			DependencyUpdateDetails: v1.DependencyUpdateDetails{
   101  				Owner:       "pmuir",
   102  				Repo:        "brie",
   103  				ToVersion:   "1.2.4",
   104  				FromVersion: "1.2.3",
   105  				Host:        "fake.git",
   106  			},
   107  		}, &commonOpts)
   108  	})
   109  
   110  }
   111  
   112  func assertParseDependencyUpdateMessage(t *testing.T, msg string, expected v1.DependencyUpdate, o *opts.CommonOptions) {
   113  	update, _, err := o.ParseDependencyUpdateMessage(msg, "https://fake.git/acme/cheese")
   114  	assert.NoError(t, err)
   115  	assert.NotNil(t, update)
   116  	assert.Equal(t, expected.Owner, update.Owner)
   117  	assert.Equal(t, expected.Repo, update.Repo)
   118  	assert.Equal(t, expected.ToVersion, update.ToVersion)
   119  	assert.Equal(t, expected.FromVersion, update.FromVersion)
   120  	assert.Equal(t, expected.Host, update.Host)
   121  }