discourse/spec/controllers/queued_posts_controller_spec.rb
2016-03-31 17:40:54 -04:00

60 lines
1.3 KiB
Ruby

require 'rails_helper'
require_dependency 'queued_posts_controller'
require_dependency 'queued_post'
describe QueuedPostsController do
context 'without authentication' do
it 'fails' do
xhr :get, :index
expect(response).not_to be_success
end
end
context 'as a regular user' do
let!(:user) { log_in(:user) }
it 'fails' do
xhr :get, :index
expect(response).not_to be_success
end
end
context 'as an admin' do
let!(:user) { log_in(:moderator) }
it 'returns the queued posts' do
xhr :get, :index
expect(response).to be_success
end
end
context 'update' do
let!(:user) { log_in(:moderator) }
let(:qp) { Fabricate(:queued_post) }
context 'approved' do
it 'updates the post to approved' do
xhr :put, :update, id: qp.id, queued_post: { state: 'approved' }
expect(response).to be_success
qp.reload
expect(qp.state).to eq(QueuedPost.states[:approved])
end
end
context 'rejected' do
it 'updates the post to approved' do
xhr :put, :update, id: qp.id, queued_post: { state: 'rejected' }
expect(response).to be_success
qp.reload
expect(qp.state).to eq(QueuedPost.states[:rejected])
end
end
end
end