wblog/spec/controllers/blogs_controller_spec.rb

66 lines
1.7 KiB
Ruby
Raw Normal View History

require 'rails_helper'
2012-06-23 09:42:37 +08:00
RSpec.describe BlogsController, type: :controller do
2012-06-23 09:42:37 +08:00
describe 'get INDEX' do
it 'index should get by order desc' do
create_list(:post_list, 5)
2014-03-29 21:59:15 +08:00
first = Post.first
first.update(title: 'first')
2014-03-29 21:59:15 +08:00
2016-04-25 12:27:32 +08:00
second = Post.order(created_at: :desc)[1]
get :index
expect(assigns(:newest)).to eq(first)
expect(assigns(:recent)[0]).to eq(second)
end
2012-06-25 08:16:34 +08:00
end
2012-06-25 08:17:56 +08:00
describe "get SHOW" do
2014-03-29 21:59:15 +08:00
it 'get POST' do
post = create(:post)
comment1 = build(:comment_no_post)
comment1.post = post
comment1.save!
comment2 = build(:comment_no_post)
comment2.post = post
comment2.save!
get :show, params: { id: post.id }
2016-04-25 12:27:32 +08:00
expect(assigns(:comments)[0]).to eq(comment2)
expect(assigns(:comments)[1]).to eq(comment1)
end
2014-03-31 12:18:40 +08:00
it "#prev, #next" do
posts = create_list(:post_list, 3)
2016-04-25 12:27:32 +08:00
posts = Post.order(created_at: :asc)
2014-03-31 12:18:40 +08:00
selected = posts[1]
2014-03-31 13:51:46 +08:00
s_prev = posts[0]
s_next = posts[2]
get :show, params: { id: selected.id }
2014-03-31 12:18:40 +08:00
expect(assigns(:prev)).to eq(s_prev)
expect(assigns(:next)).to eq(s_next)
2014-03-31 14:45:36 +08:00
# 下界
2014-03-31 13:51:46 +08:00
selected = posts[0]
get :show, params: { id: selected.id }
2014-03-31 12:18:40 +08:00
expect(assigns(:prev)).to be_nil
expect(assigns(:next)).to eq(posts[1])
2014-03-31 14:45:36 +08:00
# 测试上界
2014-03-31 13:51:46 +08:00
selected = posts[2]
get :show, params: { id: selected.id }
2014-03-31 12:18:40 +08:00
expect(assigns(:prev)).to eq(posts[1])
expect(assigns(:next)).to be_nil
2014-03-31 14:45:36 +08:00
# 测试未来时间
create(:post, created_at: Time.now + 100)
selected = posts[1]
get :show, params: { id: selected.id }
2014-03-31 14:45:36 +08:00
expect(assigns(:prev)).to eq(posts[0])
expect(assigns(:next)).to eq(posts[2])
2014-03-31 12:18:40 +08:00
end
end
2012-06-23 09:42:37 +08:00
end