diff options
Diffstat (limited to 'test/models')
| -rw-r--r-- | test/models/page_test.rb | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/test/models/page_test.rb b/test/models/page_test.rb index b737e8b0..f095a7e1 100644 --- a/test/models/page_test.rb +++ b/test/models/page_test.rb | |||
| @@ -302,6 +302,34 @@ class PageTest < ActiveSupport::TestCase | |||
| 302 | assert_equal "title_only", diff[:template_name][:to] | 302 | assert_equal "title_only", diff[:template_name][:to] |
| 303 | end | 303 | end |
| 304 | 304 | ||
| 305 | test "diff_against reports external URL, publication date and author changes" do | ||
| 306 | n = Node.root.children.create! :slug => "meta_diff_test" | ||
| 307 | d = find_or_create_draft(n, @user1) | ||
| 308 | d.external_url = "https://old.example.org/" | ||
| 309 | d.published_at = Time.utc(2026, 1, 1, 12, 0, 0) | ||
| 310 | d.save! | ||
| 311 | n.publish_draft! | ||
| 312 | |||
| 313 | new_author = User.where.not(:id => n.head.user_id).first | ||
| 314 | d2 = find_or_create_draft(n, @user1) | ||
| 315 | d2.external_url = "https://new.example.org/" | ||
| 316 | d2.published_at = Time.utc(2026, 3, 1, 12, 0, 0) | ||
| 317 | d2.user = new_author | ||
| 318 | d2.save! | ||
| 319 | |||
| 320 | diff = d2.diff_against(n.head) | ||
| 321 | |||
| 322 | assert diff[:external_url][:changed] | ||
| 323 | assert_equal "https://old.example.org/", diff[:external_url][:from] | ||
| 324 | assert_equal "https://new.example.org/", diff[:external_url][:to] | ||
| 325 | |||
| 326 | assert diff[:published_at][:changed] | ||
| 327 | assert_equal Time.utc(2026, 3, 1, 12, 0, 0).to_i, diff[:published_at][:to].to_i | ||
| 328 | |||
| 329 | assert diff[:user][:changed] | ||
| 330 | assert_equal new_author.login, diff[:user][:to].login | ||
| 331 | end | ||
| 332 | |||
| 305 | test "diff_against reports added and removed assets by filename" do | 333 | test "diff_against reports added and removed assets by filename" do |
| 306 | n = Node.root.children.create! :slug => "asset_diff_test" | 334 | n = Node.root.children.create! :slug => "asset_diff_test" |
| 307 | d = find_or_create_draft(n, @user1) | 335 | d = find_or_create_draft(n, @user1) |
