2
0
Fork 0
mirror of https://github.com/discourse/discourse.git synced 2025-09-11 21:04:42 +08:00

Add PostCreator#create!.

This commit is contained in:
Guo Xiang Tan 2016-07-15 11:36:06 +08:00
parent 5f5e045271
commit 5fe4837e28
3 changed files with 35 additions and 4 deletions

View file

@ -9,10 +9,10 @@ describe PostCreator do
end

let(:user) { Fabricate(:user) }
let(:topic) { Fabricate(:topic, user: user) }

context "new topic" do
let(:category) { Fabricate(:category, user: user) }
let(:topic) { Fabricate(:topic, user: user) }
let(:basic_topic_params) { {title: "hello world topic", raw: "my name is fred", archetype_id: 1} }
let(:image_sizes) { {'http://an.image.host/image.jpg' => {"width" => 111, "height" => 222}} }

@ -444,7 +444,7 @@ describe PostCreator do

# more integration testing ... maximise our testing
context 'existing topic' do
let!(:topic) { Fabricate(:topic, user: user) }
let(:topic) { Fabricate(:topic, user: user) }
let(:creator) { PostCreator.new(user, raw: 'test reply', topic_id: topic.id, reply_to_post_number: 4) }

it 'ensures the user can create the post' do
@ -752,8 +752,6 @@ describe PostCreator do
end

context "events" do
let(:topic) { Fabricate(:topic, user: user) }

before do
@posts_created = 0
@topics_created = 0
@ -796,7 +794,25 @@ describe PostCreator do
expect(topic_user.notification_level).to eq(TopicUser.notification_levels[:watching])
expect(topic_user.notifications_reason_id).to eq(TopicUser.notification_reasons[:auto_watch])
end
end

describe '#create!' do
it "should return the post if it was successfully created" do
title = "This is a valid title"
raw = "This is a really awesome post"

post_creator = PostCreator.new(user, title: title, raw: raw)
post = post_creator.create

expect(post).to eq(Post.last)
expect(post.topic.title).to eq(title)
expect(post.raw).to eq(raw)
end

it "should raise an error when post fails to be created" do
post_creator = PostCreator.new(user, title: '', raw: '')
expect { post_creator.create! }.to raise_error(ActiveRecord::RecordNotSaved)
end
end

end