From 286a06bd4e842f3de32bead0ee350f2efadbbfda Mon Sep 17 00:00:00 2001 From: Sander Datema Date: Sat, 18 May 2013 21:24:29 +0200 Subject: [PATCH] Set created_at manually through PostCreator --- lib/post_creator.rb | 2 ++ spec/components/post_creator_spec.rb | 22 ++++++++++++++++++++++ 2 files changed, 24 insertions(+) diff --git a/lib/post_creator.rb b/lib/post_creator.rb index 3285b771af1..90402693845 100644 --- a/lib/post_creator.rb +++ b/lib/post_creator.rb @@ -67,6 +67,7 @@ class PostCreator post.no_bump = @opts[:no_bump] if @opts[:no_bump].present? post.extract_quoted_post_numbers post.acting_user = @opts[:acting_user] if @opts[:acting_user].present? + post.created_at = Time.zone.parse(@opts[:created_at].to_s) if @opts[:created_at].present? post.image_sizes = @opts[:image_sizes] if @opts[:image_sizes].present? post.invalidate_oneboxes = @opts[:invalidate_oneboxes] if @opts[:invalidate_oneboxes].present? @@ -193,6 +194,7 @@ class PostCreator category = Category.where(name: @opts[:category]).first topic_params[:category_id] = category.id if category.present? topic_params[:meta_data] = @opts[:meta_data] if @opts[:meta_data].present? + topic_params[:created_at] = Time.zone.parse(@opts[:created_at].to_s) if @opts[:created_at].present? topic = Topic.new(topic_params) diff --git a/spec/components/post_creator_spec.rb b/spec/components/post_creator_spec.rb index ba6557a3603..35275179aeb 100644 --- a/spec/components/post_creator_spec.rb +++ b/spec/components/post_creator_spec.rb @@ -284,5 +284,27 @@ describe PostCreator do target_user2.notifications.count.should == 1 end end + + context 'setting created_at' do + created_at = 1.week.ago + let(:topic) do + PostCreator.create(user, + raw: 'This is very interesting test post content', + title: 'This is a very interesting test post title', + created_at: created_at) + end + + let(:post) do + PostCreator.create(user, + raw: 'This is very interesting test post content', + topic_id: Topic.last, + created_at: created_at) + end + + it 'acts correctly' do + topic.created_at.should be_within(10.seconds).of(created_at) + post.created_at.should be_within(10.seconds).of(created_at) + end + end end