From 0270f9e45bf3422ee576aef91eb1c26e5ed0ae3b Mon Sep 17 00:00:00 2001 From: Selase Krakani <849886+s3lase@users.noreply.github.com> Date: Thu, 1 Dec 2022 15:04:05 +0000 Subject: [PATCH] FIX: Observe unlisted topic creation restrictions in post creator specs (#19283) Update failing spec which previously used non-staff user to create hidden posts. Also add new spec for non-staff use cases to prevent future regressions. --- spec/lib/post_creator_spec.rb | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/spec/lib/post_creator_spec.rb b/spec/lib/post_creator_spec.rb index b125caac8a0..1f497b7a9f8 100644 --- a/spec/lib/post_creator_spec.rb +++ b/spec/lib/post_creator_spec.rb @@ -41,9 +41,9 @@ RSpec.describe PostCreator do expect(post.wiki).to eq(true) end - it "can be created with a hidden reason" do + it "creates post with a hidden reason for staff user" do hri = Post.hidden_reasons[:flag_threshold_reached] - post = PostCreator.create(user, basic_topic_params.merge(hidden_reason_id: hri)) + post = PostCreator.create(admin, basic_topic_params.merge(hidden_reason_id: hri)) expect(post.hidden).to eq(true) expect(post.hidden_at).to be_present expect(post.hidden_reason_id).to eq(hri) @@ -52,6 +52,16 @@ RSpec.describe PostCreator do expect(post.user.post_count).to eq(0) end + it "fails to create post with a hidden reason for non-staff user" do + hri = Post.hidden_reasons[:flag_threshold_reached] + + expect do + post = PostCreator.create(user, basic_topic_params.merge(hidden_reason_id: hri)) + + expect(post).to be_nil + end.not_to change { Post.count } + end + it "ensures the user can create the topic" do Guardian.any_instance.expects(:can_create?).with(Topic, nil).returns(false) expect { creator.create }.to raise_error(Discourse::InvalidAccess)