summaryrefslogtreecommitdiff
path: root/test/models
diff options
context:
space:
mode:
authorerdgeist <erdgeist@erdgeist.org>2026-07-10 04:41:54 +0200
committererdgeist <erdgeist@erdgeist.org>2026-07-10 04:41:54 +0200
commit30ed9fd9a8bffb44e6ab91dfedb8c0e33837769a (patch)
tree38ed0ff848d7995951b0e9f0f3b00f2e4f52cea1 /test/models
parent644744183602c68508abb02dbb9f1f321a63f88f (diff)
Include assets, tags and template in diff between revisions
Diffstat (limited to 'test/models')
-rw-r--r--test/models/page_test.rb43
1 files changed, 43 insertions, 0 deletions
diff --git a/test/models/page_test.rb b/test/models/page_test.rb
index 3868a53..bcddc89 100644
--- a/test/models/page_test.rb
+++ b/test/models/page_test.rb
@@ -228,4 +228,47 @@ class PageTest < ActiveSupport::TestCase
228 assert_equal 2, fragment.css('ins.diff_structural').length 228 assert_equal 2, fragment.css('ins.diff_structural').length
229 assert_match "der Zugang erfolgt über den Hinterhof.", fragment.text 229 assert_match "der Zugang erfolgt über den Hinterhof.", fragment.text
230 end 230 end
231
232 test "diff_against reports tag and template changes" do
233 n = Node.root.children.create! :slug => "field_diff_test"
234 d = n.find_or_create_draft @user1
235 d.tag_list = "update"
236 d.template_name = "standard_template"
237 d.save!
238 n.publish_draft!
239
240 d2 = n.find_or_create_draft @user1
241 d2.tag_list = "update, pressemitteilung"
242 d2.template_name = "title_only"
243 d2.save!
244
245 diff = d2.diff_against(n.head)
246
247 assert_equal ["pressemitteilung"], diff[:tags][:added]
248 assert_equal [], diff[:tags][:removed]
249 assert diff[:template_name][:changed]
250 assert_equal "standard_template", diff[:template_name][:from]
251 assert_equal "title_only", diff[:template_name][:to]
252 end
253
254 test "diff_against reports added and removed assets by filename" do
255 n = Node.root.children.create! :slug => "asset_diff_test"
256 d = n.find_or_create_draft @user1
257 d.save!
258 n.publish_draft!
259
260 kept_asset = Asset.create!(:upload_file_name => "kept.png", :upload_content_type => "image/png", :upload_file_size => 1)
261 removed_asset = Asset.create!(:upload_file_name => "removed.pdf", :upload_content_type => "application/pdf", :upload_file_size => 1)
262 n.head.update_assets([kept_asset.id, removed_asset.id])
263
264 d2 = n.find_or_create_draft @user1
265 added_asset = Asset.create!(:upload_file_name => "added.png", :upload_content_type => "image/png", :upload_file_size => 1)
266 d2.update_assets([kept_asset.id, added_asset.id])
267 d2.save!
268
269 diff = d2.diff_against(n.head)
270
271 assert_equal [added_asset], diff[:assets][:added]
272 assert_equal [removed_asset], diff[:assets][:removed]
273 end
231end 274end