Skip to content

Commit

Permalink
posts controller is fixed
Browse files Browse the repository at this point in the history
  • Loading branch information
GBH committed Nov 27, 2017
1 parent fa354ef commit 89e9fea
Show file tree
Hide file tree
Showing 3 changed files with 73 additions and 56 deletions.
2 changes: 1 addition & 1 deletion app/controllers/comfy/admin/blog/posts_controller.rb
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ def create
redirect_to action: :edit, id: @post

rescue ActiveRecord::RecordInvalid
flash.now[:error] = t('.create_failure')
flash.now[:danger] = t('.create_failure')
render action: :new
end

Expand Down
2 changes: 1 addition & 1 deletion test/controllers/comfy/admin/blog/blogs_controller_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

class Comfy::Admin::Blog::BlogsControllerTest < ActionDispatch::IntegrationTest

def setup
setup do
@site = comfy_cms_sites(:default)
@blog = comfy_blog_blogs(:default)
end
Expand Down
125 changes: 71 additions & 54 deletions test/controllers/comfy/admin/blog/posts_controller_test.rb
Original file line number Diff line number Diff line change
@@ -1,108 +1,125 @@
require_relative '../../../../test_helper'

class Comfy::Admin::Blog::PostsControllerTest < ActionController::TestCase
def setup
class Comfy::Admin::Blog::PostsControllerTest < ActionDispatch::IntegrationTest

setup do
@site = comfy_cms_sites(:default)
@blog = comfy_blog_blogs(:default)
@post = comfy_blog_posts(:default)
end

def test_get_index
get :index, :site_id => @site, :blog_id => @blog
r :get, comfy_admin_blog_posts_path(@site, @blog)
assert_response :success
assert assigns(:posts)
assert_template :index
end


def test_get_index_with_no_posts
Comfy::Blog::Post.delete_all
r :get, comfy_admin_blog_posts_path(@site, @blog)
assert_response :redirect
assert_redirected_to action: :new
end

def test_get_index_with_category
category = @site.categories.create!(
label: 'Test Category',
categorized_type: 'Comfy::Blog::Post'
)
category.categorizations.create!(categorized: @post)

r :get, comfy_admin_blog_posts_path(@site, @blog), params: {categories: category.label}
assert_response :success
assert assigns(:posts)
assert_equal 1, assigns(:posts).count
assert assigns(:posts).first.categories.member? category
end

def test_get_index_with_category_invalid
r :get, comfy_admin_blog_posts_path(@site, @blog), params: {categories: 'invalid'}
assert_response :success
assert assigns(:posts)
assert_equal 0, assigns(:posts).count
end

def test_get_new
get :new, :site_id => @site, :blog_id => @blog
r :get, new_comfy_admin_blog_post_path(@site, @blog)
assert_response :success
assert assigns(:post)
assert_template :new
assert_select "form[action='/admin/sites/#{@site.id}/blogs/#{@blog.id}/posts']"
end

def test_get_new_with_default_author
ComfyBlog.config.default_author = 'Default Author'
get :new, :site_id => @site, :blog_id => @blog
assert_response :success
assert assigns(:post)
assert_equal 'Default Author', assigns(:post).author
end


def test_creation
assert_difference 'Comfy::Blog::Post.count' do
post :create, :site_id => @site, :blog_id => @blog, :post => {
:title => 'Test Post',
:slug => 'test-post',
:content => 'Test Content',
:excerpt => 'Test Excerpt',
:published_at => 2.days.ago.to_s(:db),
:is_published => '1'
}
assert_difference -> {Comfy::Blog::Post.count} do
r :post, comfy_admin_blog_posts_path(@site, @blog), params: {post: {
title: 'Test Post',
slug: 'test-post',
published_at: 2.days.ago.to_s(:db),
is_published: '1'
}}
assert_response :redirect
assert_redirected_to :action => :edit, :id => assigns(:post)
assert_redirected_to action: :edit, id: assigns(:post)
assert_equal 'Blog Post created', flash[:success]
end
end

def test_creation_failure
assert_no_difference 'Comfy::Blog::Post.count' do
post :create, :site_id => @site, :blog_id => @blog, :post => { }
assert_no_difference ->{Comfy::Blog::Post.count} do
r :post, comfy_admin_blog_posts_path(@site, @blog), params: {post: {}}
assert_response :success
assert_template :new
assert assigns(:post)
assert_equal 'Failed to create Blog Post', flash[:error]
assert_equal 'Failed to create Blog Post', flash[:danger]
end
end

def test_get_edit
get :edit, :site_id => @site, :blog_id => @blog, :id => @post
r :get, edit_comfy_admin_blog_post_path(@site, @blog, @post)
assert_response :success
assert_template :edit
assert assigns(:post)
assert_select "form[action='/admin/sites/#{@site.id}/blogs/#{@blog.id}/posts/#{@post.id}']"
end

def test_get_edit_failure
get :edit, :site_id => @site, :blog_id => @blog, :id => 'invalid'
r :get, edit_comfy_admin_blog_post_path(@site, @blog, 'invalid')
assert_response :redirect
assert_redirected_to :action => :index
assert_equal 'Blog Post not found', flash[:error]
assert_redirected_to action: :index
assert_equal 'Blog Post not found', flash[:danger]
end

def test_update
put :update, :site_id => @site, :blog_id => @blog, :id => @post, :post => {
:title => 'Updated Post'
}
r :put, comfy_admin_blog_post_path(@site, @blog, @post), params: {post: {
title: 'Updated Post'
}}
assert_response :redirect
assert_redirected_to :action => :edit, :id => assigns(:post)
assert_redirected_to action: :edit, id: assigns(:post)
assert_equal 'Blog Post updated', flash[:success]

@post.reload
assert_equal 'Updated Post', @post.title
end

def test_update_failure
put :update, :site_id => @site, :blog_id => @blog, :id => @post, :post => {
:title => ''
}
r :put, comfy_admin_blog_post_path(@site, @blog, @post), params: {post: {
title: ''
}}
assert_response :success
assert_template :edit
assert_equal 'Failed to update Blog Post', flash[:error]
assert_equal 'Failed to update Blog Post', flash[:danger]

@post.reload
assert_not_equal '', @post.title
end

def test_destroy
assert_difference 'Comfy::Blog::Post.count', -1 do
delete :destroy, :site_id => @site, :blog_id => @blog, :id => @post
assert_difference -> {Comfy::Blog::Post.count}, -1 do
r :delete, comfy_admin_blog_post_path(@site, @blog, @post)
assert_response :redirect
assert_redirected_to :action => :index
assert_redirected_to action: :index
assert_equal 'Blog Post removed', flash[:success]
end
end

end
end

0 comments on commit 89e9fea

Please sign in to comment.