diff options
Diffstat (limited to 'spec/support/banzai/reference_filter_shared_examples.rb')
-rw-r--r-- | spec/support/banzai/reference_filter_shared_examples.rb | 88 |
1 files changed, 0 insertions, 88 deletions
diff --git a/spec/support/banzai/reference_filter_shared_examples.rb b/spec/support/banzai/reference_filter_shared_examples.rb deleted file mode 100644 index 0046d931e7d..00000000000 --- a/spec/support/banzai/reference_filter_shared_examples.rb +++ /dev/null @@ -1,88 +0,0 @@ -# frozen_string_literal: true - -# Specs for reference links containing HTML. -# -# Requires a reference: -# let(:reference) { '#42' } -RSpec.shared_examples 'a reference containing an element node' do - let(:inner_html) { 'element <code>node</code> inside' } - let(:reference_with_element) { %{<a href="#{reference}">#{inner_html}</a>} } - - it 'does not escape inner html' do - doc = reference_filter(reference_with_element) - expect(doc.children.first.inner_html).to eq(inner_html) - end -end - -# Requires a reference, subject and subject_name: -# subject { create(:user) } -# let(:reference) { subject.to_reference } -# let(:subject_name) { 'user' } -RSpec.shared_examples 'user reference or project reference' do - shared_examples 'it contains a data- attribute' do - it 'includes a data- attribute' do - doc = reference_filter("Hey #{reference}") - link = doc.css('a').first - - expect(link).to have_attribute("data-#{subject_name}") - expect(link.attr("data-#{subject_name}")).to eq subject.id.to_s - end - end - - context 'mentioning a resource' do - it_behaves_like 'a reference containing an element node' - it_behaves_like 'it contains a data- attribute' - - it "links to a resource" do - doc = reference_filter("Hey #{reference}") - expect(doc.css('a').first.attr('href')).to eq urls.send("#{subject_name}_url", subject) - end - - it 'links to a resource with a period' do - subject = create(subject_name.to_sym, name: 'alphA.Beta') - - doc = reference_filter("Hey #{get_reference(subject)}") - expect(doc.css('a').length).to eq 1 - end - - it 'links to a resource with an underscore' do - subject = create(subject_name.to_sym, name: 'ping_pong_king') - - doc = reference_filter("Hey #{get_reference(subject)}") - expect(doc.css('a').length).to eq 1 - end - - it 'links to a resource with different case-sensitivity' do - subject = create(subject_name.to_sym, name: 'RescueRanger') - reference = get_reference(subject) - - doc = reference_filter("Hey #{reference.upcase}") - expect(doc.css('a').length).to eq 1 - expect(doc.css('a').text).to eq(reference) - end - end - - it 'supports an :only_path context' do - doc = reference_filter("Hey #{reference}", only_path: true) - link = doc.css('a').first.attr('href') - - expect(link).not_to match %r(https?://) - expect(link).to eq urls.send "#{subject_name}_path", subject - end - - context 'referencing a resource in a link href' do - let(:reference) { %Q{<a href="#{get_reference(subject)}">Some text</a>} } - - it_behaves_like 'it contains a data- attribute' - - it 'links to the resource' do - doc = reference_filter("Hey #{reference}") - expect(doc.css('a').first.attr('href')).to eq urls.send "#{subject_name}_url", subject - end - - it 'links with adjacent text' do - doc = reference_filter("Mention me (#{reference}.)") - expect(doc.to_html).to match(%r{\(<a.+>Some text</a>\.\)}) - end - end -end |