github.com/jaylevin/jenkins-library@v1.230.4/cmd/githubCreateIssue_test.go (about) 1 package cmd 2 3 import ( 4 "testing" 5 6 "github.com/SAP/jenkins-library/pkg/mock" 7 8 "github.com/stretchr/testify/assert" 9 10 piperGithub "github.com/SAP/jenkins-library/pkg/github" 11 ) 12 13 func TestTransformConfig(t *testing.T) { 14 t.Parallel() 15 16 t.Run("Success", func(t *testing.T) { 17 // init 18 filesMock := mock.FilesMock{} 19 config := githubCreateIssueOptions{ 20 Owner: "TEST", 21 Repository: "test", 22 Body: "This is my test body", 23 Title: "This is my title", 24 Assignees: []string{"userIdOne", "userIdTwo"}, 25 } 26 options := piperGithub.CreateIssueOptions{} 27 28 // test 29 err := transformConfig(&config, &options, filesMock.FileRead) 30 31 // assert 32 assert.NoError(t, err) 33 assert.Equal(t, config.Token, options.Token) 34 assert.Equal(t, config.APIURL, options.APIURL) 35 assert.Equal(t, config.Owner, options.Owner) 36 assert.Equal(t, config.Repository, options.Repository) 37 assert.Equal(t, []byte(config.Body), options.Body) 38 assert.Equal(t, config.Title, options.Title) 39 assert.Equal(t, config.Assignees, options.Assignees) 40 assert.Equal(t, config.UpdateExisting, options.UpdateExisting) 41 }) 42 43 t.Run("Success bodyFilePath", func(t *testing.T) { 44 // init 45 filesMock := mock.FilesMock{} 46 filesMock.AddFile("test.md", []byte("Test markdown")) 47 config := githubCreateIssueOptions{ 48 Owner: "TEST", 49 Repository: "test", 50 BodyFilePath: "test.md", 51 Title: "This is my title", 52 Assignees: []string{"userIdOne", "userIdTwo"}, 53 } 54 options := piperGithub.CreateIssueOptions{} 55 56 // test 57 err := transformConfig(&config, &options, filesMock.FileRead) 58 59 // assert 60 assert.NoError(t, err) 61 assert.Equal(t, config.Token, options.Token) 62 assert.Equal(t, config.APIURL, options.APIURL) 63 assert.Equal(t, config.Owner, options.Owner) 64 assert.Equal(t, config.Repository, options.Repository) 65 assert.Equal(t, []byte("Test markdown"), options.Body) 66 assert.Equal(t, config.Title, options.Title) 67 assert.Equal(t, config.Assignees, options.Assignees) 68 assert.Equal(t, config.UpdateExisting, options.UpdateExisting) 69 }) 70 71 t.Run("Error - missing issue body", func(t *testing.T) { 72 // init 73 filesMock := mock.FilesMock{} 74 config := githubCreateIssueOptions{} 75 options := piperGithub.CreateIssueOptions{} 76 77 // test 78 err := transformConfig(&config, &options, filesMock.FileRead) 79 80 // assert 81 assert.EqualError(t, err, "either parameter `body` or parameter `bodyFilePath` is required") 82 }) 83 }