summaryrefslogtreecommitdiff
path: root/spec/lib/banzai/filter/references/issue_reference_filter_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/lib/banzai/filter/references/issue_reference_filter_spec.rb')
-rw-r--r--spec/lib/banzai/filter/references/issue_reference_filter_spec.rb22
1 files changed, 22 insertions, 0 deletions
diff --git a/spec/lib/banzai/filter/references/issue_reference_filter_spec.rb b/spec/lib/banzai/filter/references/issue_reference_filter_spec.rb
index c493cb77c98..c6f0e592cdf 100644
--- a/spec/lib/banzai/filter/references/issue_reference_filter_spec.rb
+++ b/spec/lib/banzai/filter/references/issue_reference_filter_spec.rb
@@ -15,6 +15,14 @@ RSpec.describe Banzai::Filter::References::IssueReferenceFilter do
let(:issue_path) { "/#{issue.project.namespace.path}/#{issue.project.path}/-/issues/#{issue.iid}" }
let(:issue_url) { "http://#{Gitlab.config.gitlab.host}#{issue_path}" }
+ shared_examples 'a reference with issue type information' do
+ it 'contains issue-type as a data attribute' do
+ doc = reference_filter("Fixed #{reference}")
+
+ expect(doc.css('a').first.attr('data-issue-type')).to eq('issue')
+ end
+ end
+
it 'requires project context' do
expect { described_class.call('') }.to raise_error(ArgumentError, /:project/)
end
@@ -44,6 +52,8 @@ RSpec.describe Banzai::Filter::References::IssueReferenceFilter do
it_behaves_like 'a reference containing an element node'
+ it_behaves_like 'a reference with issue type information'
+
it 'links to a valid reference' do
doc = reference_filter("Fixed #{reference}")
@@ -158,6 +168,8 @@ RSpec.describe Banzai::Filter::References::IssueReferenceFilter do
it_behaves_like 'a reference containing an element node'
+ it_behaves_like 'a reference with issue type information'
+
it 'ignores valid references when cross-reference project uses external tracker' do
expect_any_instance_of(described_class).to receive(:find_object)
.with(project2, issue.iid)
@@ -208,6 +220,8 @@ RSpec.describe Banzai::Filter::References::IssueReferenceFilter do
it_behaves_like 'a reference containing an element node'
+ it_behaves_like 'a reference with issue type information'
+
it 'ignores valid references when cross-reference project uses external tracker' do
expect_any_instance_of(described_class).to receive(:find_object)
.with(project2, issue.iid)
@@ -258,6 +272,8 @@ RSpec.describe Banzai::Filter::References::IssueReferenceFilter do
it_behaves_like 'a reference containing an element node'
+ it_behaves_like 'a reference with issue type information'
+
it 'ignores valid references when cross-reference project uses external tracker' do
expect_any_instance_of(described_class).to receive(:find_object)
.with(project2, issue.iid)
@@ -307,6 +323,8 @@ RSpec.describe Banzai::Filter::References::IssueReferenceFilter do
it_behaves_like 'a reference containing an element node'
+ it_behaves_like 'a reference with issue type information'
+
it 'links to a valid reference' do
doc = reference_filter("See #{reference}")
@@ -342,6 +360,8 @@ RSpec.describe Banzai::Filter::References::IssueReferenceFilter do
it_behaves_like 'a reference containing an element node'
+ it_behaves_like 'a reference with issue type information'
+
it 'links to a valid reference' do
doc = reference_filter("See #{reference_link}")
@@ -371,6 +391,8 @@ RSpec.describe Banzai::Filter::References::IssueReferenceFilter do
it_behaves_like 'a reference containing an element node'
+ it_behaves_like 'a reference with issue type information'
+
it 'links to a valid reference' do
doc = reference_filter("See #{reference_link}")