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 }