From 4a2f0e772c12acde64424e201097c937d9d2ce43 Mon Sep 17 00:00:00 2001 From: Arpit Jalan Date: Sat, 20 Aug 2016 00:57:12 +0530 Subject: [PATCH] add specs for post ownership change without revision --- spec/components/post_revisor_spec.rb | 14 ++++++++++++++ spec/models/post_spec.rb | 21 +++++++++++++++++++++ spec/services/post_owner_changer_spec.rb | 7 +++++++ 3 files changed, 42 insertions(+) diff --git a/spec/components/post_revisor_spec.rb b/spec/components/post_revisor_spec.rb index 977c5f24f..445c00ecd 100644 --- a/spec/components/post_revisor_spec.rb +++ b/spec/components/post_revisor_spec.rb @@ -323,6 +323,20 @@ describe PostRevisor do expect(post.revisions.size).to eq(1) end end + + context 'passing skip_revision as true' do + before do + SiteSetting.stubs(:editing_grace_period).returns(1.minute.to_i) + subject.revise!(changed_by, { raw: 'yet another updated body' }, { revised_at: post.updated_at + 10.hours, skip_revision: true }) + post.reload + end + + it 'does not create new revision ' do + expect(post.version).to eq(2) + expect(post.public_version).to eq(2) + expect(post.revisions.size).to eq(1) + end + end end describe "topic excerpt" do diff --git a/spec/models/post_spec.rb b/spec/models/post_spec.rb index 39d73fc20..a5ceb4a39 100644 --- a/spec/models/post_spec.rb +++ b/spec/models/post_spec.rb @@ -874,6 +874,27 @@ describe Post do end end + describe "#set_owner" do + let(:post) { Fabricate(:post) } + let(:coding_horror) { Fabricate(:coding_horror) } + + it "will change owner of a post correctly" do + post.set_owner(coding_horror, Discourse.system_user) + post.reload + + expect(post.user).to eq(coding_horror) + expect(post.revisions.size).to eq(1) + end + + it "skips creating new post revision if skip_revision is true" do + post.set_owner(coding_horror, Discourse.system_user, true) + post.reload + + expect(post.user).to eq(coding_horror) + expect(post.revisions.size).to eq(0) + end + end + describe ".rebake_old" do it "will catch posts it needs to rebake" do post = create_post diff --git a/spec/services/post_owner_changer_spec.rb b/spec/services/post_owner_changer_spec.rb index 9cb09f6af..b1452d35c 100644 --- a/spec/services/post_owner_changer_spec.rb +++ b/spec/services/post_owner_changer_spec.rb @@ -51,6 +51,13 @@ describe PostOwnerChanger do expect(p2.user).not_to eq(user_a) end + it "skips creating new post revision if skip_revision is true" do + described_class.new(post_ids: [p1.id, p2.id], topic_id: topic.id, new_owner: user_a, acting_user: editor, skip_revision: true).change_owner! + p1.reload; p2.reload + expect(p1.revisions.size).to eq(0) + expect(p2.revisions.size).to eq(0) + end + context "integration tests" do let(:p1user) { p1.user } let(:p2user) { p2.user }