mirror of
https://github.com/freeCodeCamp/devdocs
synced 2024-11-16 19:48:10 +01:00
Fix :follow_links option not doing anything when set to false
This commit is contained in:
parent
ba6d80b27f
commit
dd8c80060a
2 changed files with 36 additions and 20 deletions
|
@ -30,15 +30,15 @@ module Docs
|
|||
end
|
||||
|
||||
def skip_links?
|
||||
if context[:skip_links].is_a? Proc
|
||||
context[:skip_links].call self
|
||||
else
|
||||
context[:skip_links]
|
||||
end
|
||||
return context[:skip_links].call(self) if context[:skip_links].is_a?(Proc)
|
||||
return true if context[:skip_links]
|
||||
false
|
||||
end
|
||||
|
||||
def follow_links?
|
||||
!(context[:follow_links] && context[:follow_links].call(self) == false)
|
||||
return false if context[:follow_links] == false
|
||||
return false if context[:follow_links].is_a?(Proc) && context[:follow_links].call(self) == false
|
||||
true
|
||||
end
|
||||
|
||||
def to_internal_url(str)
|
||||
|
|
|
@ -331,20 +331,14 @@ class InternalUrlsFilterTest < MiniTest::Spec
|
|||
end
|
||||
end
|
||||
|
||||
context "context[:follow_links] is a block" do
|
||||
context "context[:follow_links]" do
|
||||
before do
|
||||
@body = link_to context[:url]
|
||||
end
|
||||
|
||||
it "calls the block with the filter instance" do
|
||||
context[:follow_links] = ->(arg) { @arg = arg; nil }
|
||||
filter.call
|
||||
assert_equal filter, @arg
|
||||
end
|
||||
|
||||
context "and the block returns false" do
|
||||
context "when it is false" do
|
||||
before do
|
||||
context[:follow_links] = ->(_) { false }
|
||||
context[:follow_links] = false
|
||||
end
|
||||
|
||||
it "doesn't set :internal_urls" do
|
||||
|
@ -356,13 +350,35 @@ class InternalUrlsFilterTest < MiniTest::Spec
|
|||
end
|
||||
end
|
||||
|
||||
context "and the block returns true" do
|
||||
before do
|
||||
context[:follow_links] = ->(_) { true }
|
||||
context "when it is a block" do
|
||||
it "calls the block with the filter instance" do
|
||||
context[:follow_links] = ->(arg) { @arg = arg; nil }
|
||||
filter.call
|
||||
assert_equal filter, @arg
|
||||
end
|
||||
|
||||
it "sets :internal_urls" do
|
||||
assert internal_urls
|
||||
context "and the block returns false" do
|
||||
before do
|
||||
context[:follow_links] = ->(_) { false }
|
||||
end
|
||||
|
||||
it "doesn't set :internal_urls" do
|
||||
refute internal_urls
|
||||
end
|
||||
|
||||
it "replaces urls" do
|
||||
refute_equal @body, filter_output_string
|
||||
end
|
||||
end
|
||||
|
||||
context "and the block returns true" do
|
||||
before do
|
||||
context[:follow_links] = ->(_) { true }
|
||||
end
|
||||
|
||||
it "sets :internal_urls" do
|
||||
assert internal_urls
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue