aboutsummaryrefslogtreecommitdiffstats
path: root/actionview/test
diff options
context:
space:
mode:
authorRafael França <rafaelmfranca@gmail.com>2019-04-03 23:03:30 -0400
committerGitHub <noreply@github.com>2019-04-03 23:03:30 -0400
commiteda2d7d7b91d78296ed863ff580163355b7b92e8 (patch)
tree31a763b467c08aadb6a21f5fda0ad96e7ab5f782 /actionview/test
parent464d625324accb8486aefa0b4a4b46477462dd08 (diff)
parente8688ddb33347eb9de078843a75a075b70cc9f04 (diff)
downloadrails-eda2d7d7b91d78296ed863ff580163355b7b92e8.tar.gz
rails-eda2d7d7b91d78296ed863ff580163355b7b92e8.tar.bz2
rails-eda2d7d7b91d78296ed863ff580163355b7b92e8.zip
Merge pull request #35145 from st0012/fix-35114
Fix partial caching ignore repeated items issue
Diffstat (limited to 'actionview/test')
-rw-r--r--actionview/test/fixtures/test/_cached_set.erb1
-rw-r--r--actionview/test/template/render_test.rb22
2 files changed, 23 insertions, 0 deletions
diff --git a/actionview/test/fixtures/test/_cached_set.erb b/actionview/test/fixtures/test/_cached_set.erb
new file mode 100644
index 0000000000..cd492fc519
--- /dev/null
+++ b/actionview/test/fixtures/test/_cached_set.erb
@@ -0,0 +1 @@
+<%= cached_set.first %> | <%= cached_set.second %> | <%= cached_set.third %> | <%= cached_set.fourth %> | <%= cached_set.fifth %>
diff --git a/actionview/test/template/render_test.rb b/actionview/test/template/render_test.rb
index 15c41051de..f0b5d7d95e 100644
--- a/actionview/test/template/render_test.rb
+++ b/actionview/test/template/render_test.rb
@@ -811,6 +811,28 @@ class CachedCollectionViewRenderTest < ActiveSupport::TestCase
end
end
+ test "collection caching with repeated collection" do
+ sets = [
+ [1, 2, 3, 4, 5],
+ [1, 2, 3, 4, 4],
+ [1, 2, 3, 4, 5],
+ [1, 2, 3, 4, 4],
+ [1, 2, 3, 4, 6]
+ ]
+
+ result = @view.render(partial: "test/cached_set", collection: sets, cached: true)
+
+ splited_result = result.split("\n")
+ assert_equal 5, splited_result.count
+ assert_equal [
+ "1 | 2 | 3 | 4 | 5",
+ "1 | 2 | 3 | 4 | 4",
+ "1 | 2 | 3 | 4 | 5",
+ "1 | 2 | 3 | 4 | 4",
+ "1 | 2 | 3 | 4 | 6"
+ ], splited_result
+ end
+
private
def cache_key(*names, virtual_path)
digest = ActionView::Digestor.digest name: virtual_path, format: :html, finder: @view.lookup_context, dependencies: []