Handle trailing slashes when generating Jira URLs

Applies to issues_url and new_issue_url
This commit is contained in:
Heinrich Lee Yu 2019-07-19 00:44:24 +08:00
parent 695f4bb17d
commit 589d1797d8
3 changed files with 35 additions and 2 deletions

View file

@ -54,7 +54,7 @@ class JiraService < IssueTrackerService
username: self.username,
password: self.password,
site: URI.join(url, '/').to_s, # Intended to find the root
context_path: url.path.chomp('/'),
context_path: url.path,
auth_type: :basic,
read_timeout: 120,
use_cookies: true,
@ -103,6 +103,12 @@ class JiraService < IssueTrackerService
"#{url}/secure/CreateIssue.jspa"
end
alias_method :original_url, :url
def url
original_url&.chomp('/')
end
def execute(push)
# This method is a no-op, because currently JiraService does not
# support any events.

View file

@ -0,0 +1,5 @@
---
title: Handle trailing slashes when generating Jira issue URLs
merge_request: 30911
author:
type: fixed

View file

@ -236,7 +236,7 @@ describe JiraService do
allow(JIRA::Resource::Remotelink).to receive(:all).and_return(nil)
expect { @jira_service.close_issue(resource, ExternalIssue.new('JIRA-123', project)) }
.not_to raise_error(NoMethodError)
.not_to raise_error
end
# Check https://developer.atlassian.com/jiradev/jira-platform/guides/other/guide-jira-remote-issue-links/fields-in-remote-issue-links
@ -606,6 +606,12 @@ describe JiraService do
expect(service.properties['api_url']).to eq('http://jira.sample/api')
end
end
it 'removes trailing slashes from url' do
service = described_class.new(url: 'http://jira.test.com/path/')
expect(service.url).to eq('http://jira.test.com/path')
end
end
describe 'favicon urls', :request_store do
@ -621,4 +627,20 @@ describe JiraService do
expect(props[:object][:icon][:url16x16]).to match %r{^http://localhost/uploads/-/system/appearance/favicon/\d+/dk.png$}
end
end
context 'generating external URLs' do
let(:service) { described_class.new(url: 'http://jira.test.com/path/') }
describe '#issues_url' do
it 'handles trailing slashes' do
expect(service.issues_url).to eq('http://jira.test.com/path/browse/:id')
end
end
describe '#new_issue_url' do
it 'handles trailing slashes' do
expect(service.new_issue_url).to eq('http://jira.test.com/path/secure/CreateIssue.jspa')
end
end
end
end