summaryrefslogtreecommitdiff
path: root/spec/models/project_services/gitlab_issue_tracker_service_spec.rb
diff options
context:
space:
mode:
authorMarin Jankovski <maxlazio@gmail.com>2015-02-23 12:38:30 -0800
committerMarin Jankovski <maxlazio@gmail.com>2015-02-23 18:43:26 -0800
commitb0dfe434c60da7d04ddf23f7a3e85af97d377568 (patch)
tree3ca84eba439726e2aa3839287aa0ab0ad666b21b /spec/models/project_services/gitlab_issue_tracker_service_spec.rb
parenta4118ca445871c04625edee6463cffd838772b13 (diff)
downloadgitlab-ce-b0dfe434c60da7d04ddf23f7a3e85af97d377568.tar.gz
Using gitlab url to build links for gitlab issue tracker and add a spec. Fix rubocop warnings in path.
Diffstat (limited to 'spec/models/project_services/gitlab_issue_tracker_service_spec.rb')
-rw-r--r--spec/models/project_services/gitlab_issue_tracker_service_spec.rb60
1 files changed, 60 insertions, 0 deletions
diff --git a/spec/models/project_services/gitlab_issue_tracker_service_spec.rb b/spec/models/project_services/gitlab_issue_tracker_service_spec.rb
new file mode 100644
index 00000000000..c474f4a2d95
--- /dev/null
+++ b/spec/models/project_services/gitlab_issue_tracker_service_spec.rb
@@ -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