Commit 589d1797 authored by Heinrich Lee Yu's avatar Heinrich Lee Yu

Handle trailing slashes when generating Jira URLs

Applies to issues_url and new_issue_url
parent 695f4bb1
Pipeline #72164627 passed with stages
in 55 minutes and 39 seconds
......@@ -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.
......
---
title: Handle trailing slashes when generating Jira issue URLs
merge_request: 30911
author:
type: fixed
......@@ -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
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment