From b3f95341c3b67123084563bd38f9145b8ef4da78 Mon Sep 17 00:00:00 2001 From: Joe Sak Date: Fri, 11 Mar 2011 13:21:24 -0600 Subject: More test coverage for tags: can fill tags in on admin form --- app/views/admin/blog/posts/_form.html.erb | 6 ++++++ features/support/factories/blog_posts.rb | 1 + features/support/step_definitions/tags_steps.rb | 3 +++ features/tags.feature | 21 +++++++++++++++++++++ spec/models/blog_posts_spec.rb | 5 +++-- 5 files changed, 34 insertions(+), 2 deletions(-) create mode 100644 features/support/step_definitions/tags_steps.rb create mode 100644 features/tags.feature 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' -%> + +
+ <%= f.label :tag_list, "Tags" -%> + <%= f.text_field :tag_list, :class => 'larger' -%> +
+

<%= 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 -- cgit v1.2.3