diff options
| author | erdgeist <erdgeist@erdgeist.org> | 2026-07-10 04:41:54 +0200 |
|---|---|---|
| committer | erdgeist <erdgeist@erdgeist.org> | 2026-07-10 04:41:54 +0200 |
| commit | 30ed9fd9a8bffb44e6ab91dfedb8c0e33837769a (patch) | |
| tree | 38ed0ff848d7995951b0e9f0f3b00f2e4f52cea1 /test/models | |
| parent | 644744183602c68508abb02dbb9f1f321a63f88f (diff) | |
Include assets, tags and template in diff between revisions
Diffstat (limited to 'test/models')
| -rw-r--r-- | test/models/page_test.rb | 43 |
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 | ||
| 231 | end | 274 | end |
