Using gitlab url to build links for gitlab issue tracker and add a spec. Fix rubocop warnings in path.
This commit is contained in:
parent
a4118ca445
commit
b0dfe434c6
4 changed files with 89 additions and 16 deletions
|
@ -27,14 +27,20 @@ class GitlabIssueTrackerService < IssueTrackerService
|
|||
end
|
||||
|
||||
def project_url
|
||||
namespace_project_issues_path(project.namespace, project)
|
||||
"#{gitlab_url}#{namespace_project_issues_path(project.namespace, project)}"
|
||||
end
|
||||
|
||||
def new_issue_url
|
||||
new_namespace_project_issue_path namespace_id: project.namespace, project_id: project
|
||||
"#{gitlab_url}#{new_namespace_project_issue_path(namespace_id: project.namespace, project_id: project)}"
|
||||
end
|
||||
|
||||
def issue_url(iid)
|
||||
"#{Gitlab.config.gitlab.url}#{namespace_project_issue_path(namespace_id: project.namespace, project_id: project, id: iid)}"
|
||||
"#{gitlab_url}#{namespace_project_issue_path(namespace_id: project.namespace, project_id: project, id: iid)}"
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def gitlab_url
|
||||
Gitlab.config.gitlab.relative_url_root.chomp("/") if Gitlab.config.gitlab.relative_url_root
|
||||
end
|
||||
end
|
||||
|
|
|
@ -269,16 +269,23 @@ Gitlab::Application.routes.draw do
|
|||
post '/preview/*id', to: 'blob#preview', constraints: { id: /.+/ }, as: 'preview_blob'
|
||||
|
||||
scope do
|
||||
get('/blob/*id/diff',
|
||||
to: 'blob#diff',
|
||||
constraints: { id: /.+/, format: false },
|
||||
as: :blob_diff)
|
||||
get('/blob/*id',
|
||||
to: 'blob#show',
|
||||
constraints: { id: /.+/, format: false }, as: :blob)
|
||||
delete('/blob/*id',
|
||||
to: 'blob#destroy',
|
||||
constraints: { id: /.+/, format: false })
|
||||
get(
|
||||
'/blob/*id/diff',
|
||||
to: 'blob#diff',
|
||||
constraints: { id: /.+/, format: false },
|
||||
as: :blob_diff
|
||||
)
|
||||
get(
|
||||
'/blob/*id',
|
||||
to: 'blob#show',
|
||||
constraints: { id: /.+/, format: false },
|
||||
as: :blob
|
||||
)
|
||||
delete(
|
||||
'/blob/*id',
|
||||
to: 'blob#destroy',
|
||||
constraints: { id: /.+/, format: false }
|
||||
)
|
||||
end
|
||||
|
||||
scope do
|
||||
|
|
|
@ -474,7 +474,7 @@ describe GitlabMarkdownHelper do
|
|||
|
||||
# First issue link
|
||||
expect(groups[1]).
|
||||
to match(/href="#{namespace_project_issue_url(project.namespace, project, issues[0])}"/)
|
||||
to match(/href="#{namespace_project_issue_path(project.namespace, project, issues[0])}"/)
|
||||
expect(groups[1]).to match(/##{issues[0].iid}$/)
|
||||
|
||||
# Internal commit link
|
||||
|
@ -483,7 +483,7 @@ describe GitlabMarkdownHelper do
|
|||
|
||||
# Second issue link
|
||||
expect(groups[3]).
|
||||
to match(/href="#{namespace_project_issue_url(project.namespace, project, issues[1])}"/)
|
||||
to match(/href="#{namespace_project_issue_path(project.namespace, project, issues[1])}"/)
|
||||
expect(groups[3]).to match(/##{issues[1].iid}$/)
|
||||
|
||||
# Trailing commit link
|
||||
|
@ -611,7 +611,7 @@ describe GitlabMarkdownHelper do
|
|||
end
|
||||
|
||||
it "should generate absolute urls for refs" do
|
||||
expect(markdown("##{issue.iid}")).to include(namespace_project_issue_url(project.namespace, project, issue))
|
||||
expect(markdown("##{issue.iid}")).to include(namespace_project_issue_path(project.namespace, project, issue))
|
||||
end
|
||||
|
||||
it "should generate absolute urls for emoji" do
|
||||
|
|
|
@ -0,0 +1,60 @@
|
|||
# == Schema Information
|
||||
#
|
||||
# Table name: services
|
||||
#
|
||||
# id :integer not null, primary key
|
||||
# type :string(255)
|
||||
# title :string(255)
|
||||
# project_id :integer
|
||||
# created_at :datetime
|
||||
# updated_at :datetime
|
||||
# active :boolean default(FALSE), not null
|
||||
# properties :text
|
||||
# template :boolean default(FALSE)
|
||||
#
|
||||
require 'spec_helper'
|
||||
|
||||
describe GitlabIssueTrackerService do
|
||||
describe "Associations" do
|
||||
it { is_expected.to belong_to :project }
|
||||
it { is_expected.to have_one :service_hook }
|
||||
end
|
||||
|
||||
|
||||
describe 'project and issue urls' do
|
||||
let(:project) { create(:project) }
|
||||
|
||||
context 'with absolute urls' do
|
||||
before do
|
||||
@service = project.create_gitlab_issue_tracker_service(active: true)
|
||||
end
|
||||
|
||||
after do
|
||||
@service.destroy!
|
||||
end
|
||||
|
||||
it 'should give the correct path' do
|
||||
expect(@service.project_url).to eq("/#{project.path_with_namespace}/issues")
|
||||
expect(@service.new_issue_url).to eq("/#{project.path_with_namespace}/issues/new")
|
||||
expect(@service.issue_url(432)).to eq("/#{project.path_with_namespace}/issues/432")
|
||||
end
|
||||
end
|
||||
|
||||
context 'with enabled relative urls' do
|
||||
before do
|
||||
Settings.gitlab.stub(:relative_url_root).and_return("/gitlab/root")
|
||||
@service = project.create_gitlab_issue_tracker_service(active: true)
|
||||
end
|
||||
|
||||
after do
|
||||
@service.destroy!
|
||||
end
|
||||
|
||||
it 'should give the correct path' do
|
||||
expect(@service.project_url).to eq("/gitlab/root/#{project.path_with_namespace}/issues")
|
||||
expect(@service.new_issue_url).to eq("/gitlab/root/#{project.path_with_namespace}/issues/new")
|
||||
expect(@service.issue_url(432)).to eq("/gitlab/root/#{project.path_with_namespace}/issues/432")
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
Loading…
Reference in a new issue