test: cover AuthzArticlePolicy, destroy? and CacheHelpersTest

This commit is contained in:
dualfroz committed 2026-09-09 17:30:12 +02:00
1 parent f0803046dd
commit 730c66caf0
2 files changed
+180

No files matched your search

+67
View File
@@ -0,0 +1,67 @@
require 'minitest/autorun'
require 'prism'
require 'tmpdir'
require 'fileutils'
class CacheHelpersTest < Minitest::Test
def setup
Prism::Cache.store.clear
@dir = Dir.mktmpdir('prism-cache-helpers')
FileUtils.mkdir_p(File.join(@dir, 'pages'))
@view = Prism::View.new(@dir)
end
def teardown
FileUtils.remove_entry(@dir)
Prism::Cache.store.clear
end
def write(relative, source)
File.write(File.join(@dir, relative), source)
end
def test_cache_block_renders_and_stores_the_fragment
write('pages/show.erb', '<% cache("greeting") do %><%= greeting %><% end %>')
result = @view.render('pages/show', locals: { greeting: 'hi' })
assert_equal 'hi', result
assert_equal 'hi', Prism::Cache.store.read('greeting')
end
def test_cache_block_is_not_reevaluated_on_a_hit
calls = []
write('pages/show.erb', '<% cache("counter") do %><%= track! %><% end %>')
@view = Prism::View.new(@dir, helpers: CounterHelper.new(calls))
first = @view.render('pages/show')
second = @view.render('pages/show')
assert_equal first, second
assert_equal 1, calls.size
end
def test_cache_key_can_be_an_array_mixing_scope_and_a_model
model = Struct.new(:cache_key).new('posts/7-42')
write('pages/show.erb', '<% cache([:sidebar, model]) do %>rendered<% end %>')
@view.render('pages/show', locals: { model: model })
assert @view.expand_cache_key([:sidebar, model]) == 'sidebar/posts/7-42'
assert_equal 'rendered', Prism::Cache.store.read('sidebar/posts/7-42')
end
def test_expires_in_evicts_the_entry_after_the_given_time
write('pages/show.erb', '<% cache("temp", expires_in: 0) do %>value<% end %>')
@view.render('pages/show')
sleep 0.01
assert_nil Prism::Cache.store.read('temp')
end
class CounterHelper
def initialize(calls)
@calls = calls
end
def track!
@calls << true
'x'
end
end
end