aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--app/views/admin/blog/posts/_form.html.erb6
-rw-r--r--features/support/factories/blog_posts.rb1
-rw-r--r--features/support/step_definitions/tags_steps.rb3
-rw-r--r--features/tags.feature21
-rw-r--r--spec/models/blog_posts_spec.rb5
5 files changed, 34 insertions, 2 deletions
diff --git a/app/views/admin/blog/posts/_form.html.erb b/app/views/admin/blog/posts/_form.html.erb
index 0dc6e9b..3c0a351 100644
--- a/app/views/admin/blog/posts/_form.html.erb
+++ b/app/views/admin/blog/posts/_form.html.erb
@@ -14,6 +14,12 @@
<%= f.label :body -%>
<%= f.text_area :body, :rows => 20, :class => 'wymeditor widest' -%>
</div>
+
+ <div class='field'>
+ <%= f.label :tag_list, "Tags" -%>
+ <%= f.text_field :tag_list, :class => 'larger' -%>
+ </div>
+
<div id='more_options_field'>
<p>
<%= link_to t('.advanced_options'), "#",
diff --git a/features/support/factories/blog_posts.rb b/features/support/factories/blog_posts.rb
index 24436b8..3eecf53 100644
--- a/features/support/factories/blog_posts.rb
+++ b/features/support/factories/blog_posts.rb
@@ -2,5 +2,6 @@ Factory.define(:post, :class => BlogPost) do |f|
f.sequence(:title) { |n| "Top #{n} Shopping Centers in Chicago" }
f.body "These are the top ten shopping centers in Chicago. You're going to read a long blog post about them. Come to peace with it."
f.draft false
+ f.tag_list "chicago, shopping, fun times"
f.published_at Time.now
end
diff --git a/features/support/step_definitions/tags_steps.rb b/features/support/step_definitions/tags_steps.rb
new file mode 100644
index 0000000..00e8a3e
--- /dev/null
+++ b/features/support/step_definitions/tags_steps.rb
@@ -0,0 +1,3 @@
+Then /^the blog post should have the tags "([^"]*)"$/ do |tag_list|
+ BlogPost.last.tag_list == tag_list.split(', ')
+end
diff --git a/features/tags.feature b/features/tags.feature
new file mode 100644
index 0000000..d8b9427
--- /dev/null
+++ b/features/tags.feature
@@ -0,0 +1,21 @@
+@blog_tags
+Feature: Blog Post Tags
+ Blog posts can be assigned tags
+
+ Scenario: The blog post new/edit form has tag_list
+ Given I am a logged in refinery user
+
+ When I am on the new blog post form
+ Then I should see "Tags"
+
+ Scenario: The blog post new/edit form saves tag_list
+ Given I am a logged in refinery user
+
+ When I am on the new blog post form
+ And I fill in "Title" with "This is my blog post"
+ And I fill in "Body" with "And I love it"
+ And I fill in "Tags" with "chicago, bikes, beers, babes"
+ And I press "Save"
+
+ Then there should be 1 blog post
+ And the blog post should have the tags "chicago, bikes, beers, babes" \ No newline at end of file
diff --git a/spec/models/blog_posts_spec.rb b/spec/models/blog_posts_spec.rb
index 523ddf3..1b96ece 100644
--- a/spec/models/blog_posts_spec.rb
+++ b/spec/models/blog_posts_spec.rb
@@ -49,13 +49,14 @@ describe BlogPost do
describe "tags" do
it "acts as taggable" do
- Factory(:post).should respond_to(:tag_list)
+ (post = Factory(:post)).should respond_to(:tag_list)
+ post.tag_list.should include("chicago")
end
end
describe "authors" do
it "are authored" do
- BlogPost.instance_methods.map(&:to_sym).include? :author
+ BlogPost.instance_methods.map(&:to_sym).should include(:author)
end
end