parsley/spec/controllers/task_list_controller_spec.rb
2018-08-27 17:46:33 -05:00

62 lines
1.5 KiB
Ruby

require 'rails_helper'
RSpec.describe TaskListsController, type: :controller do
render_views
before(:each) do
request.accept = "application/json"
end
let(:user) {
create(:user)
}
let(:valid_session) { {user_id: user.id} }
describe 'GET #index' do
it 'assigns all user lists as @task_lists' do
l1 = create(:task_list, user: user)
l2 = create(:task_list, user: user)
create(:task_list)
get :index, params: {}, session: valid_session
expect(assigns(:task_lists)).to contain_exactly(l1, l2)
end
end
describe 'GET #show' do
it 'assigns @task_list' do
l = create(:task_list, user: user)
get :show, params: {id: l.id}, session: valid_session
expect(assigns(:task_list)).to eq l
end
end
describe 'POST #create' do
it 'creates a task_list' do
expect do
post :create, params: {task_list: {name: 'name'}}, session: valid_session
end.to change(TaskList, :count).by 1
end
end
describe 'PATCH #update' do
it 'updates a task_list' do
l = create(:task_list, user: user)
patch :update, params: {id: l.id, task_list: {name: 'new name'}}, session: valid_session
l.reload
expect(l.name).to eq 'new name'
end
end
describe 'DELETE #destroy' do
it 'destroys the list' do
l = create(:task_list, user: user)
delete :destroy, params: {id: l.id}, session: valid_session
expect(TaskList.where(id: l.id).count).to eq 0
end
end
end