From 21d9e126f2210167c505c26293a1d2b53fb5faa7 Mon Sep 17 00:00:00 2001 From: Stella Rouzi Date: Fri, 4 Mar 2016 19:17:58 +0200 Subject: [PATCH] Add controller test for users#show --- spec/controllers/users_controller_spec.rb | 66 +++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 spec/controllers/users_controller_spec.rb diff --git a/spec/controllers/users_controller_spec.rb b/spec/controllers/users_controller_spec.rb new file mode 100644 index 00000000..e46e134c --- /dev/null +++ b/spec/controllers/users_controller_spec.rb @@ -0,0 +1,66 @@ +require 'spec_helper' + +describe UsersController do + let!(:first_user) { create(:user) } + let!(:user) { create(:user, name: 'My Name') } + + describe 'GET #show' do + before :each do + get :show, id: user.id + end + + it 'renders show template' do + expect(response).to render_template :show + end + + it 'assigns the right value to @user' do + expect(assigns(:user)).to eq user + end + + it 'assigns [] to @events, when user does not have any submissions' do + expect(assigns(:events)).to eq [] + end + + it 'assigns the correct value to @events, when the user has submissions' do + conference = create(:conference) + event = create(:event, state: 'confirmed', program: conference.program) + event.event_users << create(:event_user, user: user, event_role: 'submitter') + + expect(assigns(:events)).to eq [event] + end + end + + describe 'GET #edit' do + it 'assigns the right value to @user' do + sign_in user + get :edit, id: user.id + expect(assigns(:user)).to eq user + end + end + + describe 'PATCH #update' do + context 'with valid attributes' do + before :each do + sign_in user + patch :update, id: user.id, user: attributes_for(:user, name: 'My Test Name') + user.reload + end + + it 'assigns the right value to @user' do + expect(assigns(:user)).to eq user + end + + it 'changes user attributes' do + expect(user.name).to eq 'My Test Name' + end + + it 'redirects to show' do + expect(response).to redirect_to(user_path(user)) + end + + it 'shows flash message' do + expect(flash[:notice]).to eq 'User was successfully updated.' + end + end + end +end