diff options
Diffstat (limited to 'spec/lib/banzai/filter/issue_reference_filter_spec.rb')
-rw-r--r-- | spec/lib/banzai/filter/issue_reference_filter_spec.rb | 44 |
1 files changed, 28 insertions, 16 deletions
diff --git a/spec/lib/banzai/filter/issue_reference_filter_spec.rb b/spec/lib/banzai/filter/issue_reference_filter_spec.rb index 61c59162a30..603da2b4421 100644 --- a/spec/lib/banzai/filter/issue_reference_filter_spec.rb +++ b/spec/lib/banzai/filter/issue_reference_filter_spec.rb @@ -11,7 +11,9 @@ describe Banzai::Filter::IssueReferenceFilter do end let(:project) { create(:project, :public) } - let(:issue) { create(:issue, project: project) } + let(:issue) { create(:issue, project: project) } + let(:issue_path) { "/#{issue.project.namespace.path}/#{issue.project.path}/-/issues/#{issue.iid}" } + let(:issue_url) { "http://#{Gitlab.config.gitlab.host}#{issue_path}" } it 'requires project context' do expect { described_class.call('') }.to raise_error(ArgumentError, /:project/) @@ -46,7 +48,7 @@ describe Banzai::Filter::IssueReferenceFilter do doc = reference_filter("Fixed #{reference}") expect(doc.css('a').first.attr('href')) - .to eq helper.url_for_issue(issue.iid, project) + .to eq issue_url end it 'links with adjacent text' do @@ -113,7 +115,7 @@ describe Banzai::Filter::IssueReferenceFilter do link = doc.css('a').first.attr('href') expect(link).not_to match %r(https?://) - expect(link).to eq helper.url_for_issue(issue.iid, project, only_path: true) + expect(link).to eq issue_path end it 'does not process links containing issue numbers followed by text' do @@ -145,7 +147,7 @@ describe Banzai::Filter::IssueReferenceFilter do doc = reference_filter("See #{reference}") expect(doc.css('a').first.attr('href')) - .to eq helper.url_for_issue(issue.iid, project2) + .to eq issue_url end it 'link has valid text' do @@ -195,7 +197,7 @@ describe Banzai::Filter::IssueReferenceFilter do doc = reference_filter("See #{reference}") expect(doc.css('a').first.attr('href')) - .to eq helper.url_for_issue(issue.iid, project2) + .to eq issue_url end it 'link has valid text' do @@ -245,7 +247,7 @@ describe Banzai::Filter::IssueReferenceFilter do doc = reference_filter("See #{reference}") expect(doc.css('a').first.attr('href')) - .to eq helper.url_for_issue(issue.iid, project2) + .to eq issue_url end it 'link has valid text' do @@ -279,7 +281,7 @@ describe Banzai::Filter::IssueReferenceFilter do let(:namespace) { create(:namespace, name: 'cross-reference') } let(:project2) { create(:project, :public, namespace: namespace) } let(:issue) { create(:issue, project: project2) } - let(:reference) { helper.url_for_issue(issue.iid, project2) + "#note_123" } + let(:reference) { issue_url + "#note_123" } it 'links to a valid reference' do doc = reference_filter("See #{reference}") @@ -314,7 +316,7 @@ describe Banzai::Filter::IssueReferenceFilter do doc = reference_filter("See #{reference_link}") expect(doc.css('a').first.attr('href')) - .to eq helper.url_for_issue(issue.iid, project2) + .to eq issue_url end it 'links with adjacent text' do @@ -336,14 +338,14 @@ describe Banzai::Filter::IssueReferenceFilter do let(:namespace) { create(:namespace, name: 'cross-reference') } let(:project2) { create(:project, :public, namespace: namespace) } let(:issue) { create(:issue, project: project2) } - let(:reference) { "#{helper.url_for_issue(issue.iid, project2) + "#note_123"}" } + let(:reference) { "#{issue_url + "#note_123"}" } let(:reference_link) { %{<a href="#{reference}">Reference</a>} } it 'links to a valid reference' do doc = reference_filter("See #{reference_link}") expect(doc.css('a').first.attr('href')) - .to eq helper.url_for_issue(issue.iid, project2) + "#note_123" + .to eq issue_url + "#note_123" end it 'links with adjacent text' do @@ -374,6 +376,16 @@ describe Banzai::Filter::IssueReferenceFilter do expect(link.attr('href')).to eq(designs_tab_url) expect(link.text).to eq("#{issue.to_reference} (designs)") end + + context 'design management is not available' do + before do + enable_design_management(false) + end + + it 'links to the issue, but not to the designs tab' do + expect(link.text).to eq(issue.to_reference) + end + end end context 'group context' do @@ -403,7 +415,7 @@ describe Banzai::Filter::IssueReferenceFilter do doc = reference_filter("See #{reference}", context) link = doc.css('a').first - expect(link.attr('href')).to eq(helper.url_for_issue(issue.iid, project)) + expect(link.attr('href')).to eq(issue_url) expect(link.text).to include("#{project.full_path}##{issue.iid}") end @@ -415,23 +427,23 @@ describe Banzai::Filter::IssueReferenceFilter do end it 'links to a valid reference for url cross-reference' do - reference = helper.url_for_issue(issue.iid, project) + "#note_123" + reference = issue_url + "#note_123" doc = reference_filter("See #{reference}", context) link = doc.css('a').first - expect(link.attr('href')).to eq(helper.url_for_issue(issue.iid, project) + "#note_123") + expect(link.attr('href')).to eq(issue_url + "#note_123") expect(link.text).to include("#{project.full_path}##{issue.iid}") end it 'links to a valid reference for cross-reference in link href' do - reference = "#{helper.url_for_issue(issue.iid, project) + "#note_123"}" + reference = "#{issue_url + "#note_123"}" reference_link = %{<a href="#{reference}">Reference</a>} doc = reference_filter("See #{reference_link}", context) link = doc.css('a').first - expect(link.attr('href')).to eq(helper.url_for_issue(issue.iid, project) + "#note_123") + expect(link.attr('href')).to eq(issue_url + "#note_123") expect(link.text).to include('Reference') end @@ -441,7 +453,7 @@ describe Banzai::Filter::IssueReferenceFilter do doc = reference_filter("See #{reference_link}", context) link = doc.css('a').first - expect(link.attr('href')).to eq(helper.url_for_issue(issue.iid, project)) + expect(link.attr('href')).to eq(issue_url) expect(link.text).to include('Reference') end end |