From f7e7a9cfd440ff7145d24ae2c5936372540e39aa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marco=20Andr=C3=A9=20Dinis?= Date: Thu, 18 Apr 2024 08:05:22 +0100 Subject: [PATCH] Fix JIRA issue type (#40587) * Fix JIRA issue type During set up we ask for the Jira Issue Type, but then we always send the `Task` type. This PR changes the field's value to match the configured one. * add test --- integrations/access/jira/client.go | 2 +- integrations/access/jira/fake_jira_test.go | 1 + integrations/access/jira/jira_test.go | 18 ++++++++++++++++++ 3 files changed, 20 insertions(+), 1 deletion(-) diff --git a/integrations/access/jira/client.go b/integrations/access/jira/client.go index 839482d249d0e..fcc0c9b4523b8 100644 --- a/integrations/access/jira/client.go +++ b/integrations/access/jira/client.go @@ -241,7 +241,7 @@ func (j *Jira) CreateIssue(ctx context.Context, reqID string, reqData RequestDat }, }, Fields: IssueFieldsInput{ - Type: &IssueType{Name: "Task"}, + Type: &IssueType{Name: j.issueType}, Project: &Project{Key: j.project}, Summary: fmt.Sprintf("%s requested %s", reqData.User, strings.Join(reqData.Roles, ", ")), Description: description, diff --git a/integrations/access/jira/fake_jira_test.go b/integrations/access/jira/fake_jira_test.go index d059ea39576a4..e2803828a47ed 100644 --- a/integrations/access/jira/fake_jira_test.go +++ b/integrations/access/jira/fake_jira_test.go @@ -103,6 +103,7 @@ func NewFakeJira(author UserDetails, concurrency int) *FakeJira { Fields: IssueFields{ Summary: issueInput.Fields.Summary, Description: issueInput.Fields.Description, + Type: *issueInput.Fields.Type, }, Properties: make(map[string]interface{}), } diff --git a/integrations/access/jira/jira_test.go b/integrations/access/jira/jira_test.go index 157f3c6e5164e..e408e9d5dec15 100644 --- a/integrations/access/jira/jira_test.go +++ b/integrations/access/jira/jira_test.go @@ -854,3 +854,21 @@ func (s *JiraSuite) TestRace() { }) assert.Equal(t, s.raceNumber, count) } + +// TestCustomIssueType tests that requests can use a custom issue type. +func (s *JiraSuite) TestCustomIssueType() { + t := s.T() + ctx, cancel := context.WithTimeout(context.Background(), 5*time.Minute) + t.Cleanup(cancel) + + s.appConfig.Jira.IssueType = "Story" + s.startApp() + + // Test setup: we create an access request + _ = s.createAccessRequest() + + // We validate that the issue was created using the Issue Type "Story" + newIssue, err := s.fakeJira.CheckNewIssue(ctx) + require.NoError(t, err) + require.Equal(t, "Story", newIssue.Fields.Type.Name) +}