Skip to content

Commit 3cc17ad

Browse files
committed
Add test coverage for #update
1 parent 58f96bd commit 3cc17ad

1 file changed

Lines changed: 36 additions & 21 deletions

File tree

spec/controllers/users_controller_spec.rb

Lines changed: 36 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -836,25 +836,52 @@ def post_user
836836
context 'with authenticated user' do
837837
context 'with permission to update' do
838838
it 'allows the update' do
839-
user = create_authenticated_user('Billy Bob')
840-
stub_guardian(user) do |guardian|
841-
guardian.stubs(:ensure_can_edit!).with(user)
842-
end
839+
user = Fabricate(:user, name: 'Billy Bob')
840+
log_in_user(user)
843841

844842
put :update, username: user.username, name: 'Jim Tom'
845843

846844
expect(response).to be_success
847845
expect(user.reload.name).to eq 'Jim Tom'
848846
end
847+
848+
it 'returns user JSON' do
849+
user = log_in
850+
851+
put :update, username: user.username
852+
853+
json = JSON.parse(response.body)
854+
expect(json['user']['id']).to eq user.id
855+
end
856+
857+
context 'when website includes http' do
858+
it 'does not add http before updating' do
859+
user = log_in
860+
861+
put :update, username: user.username, website: 'http://example.com'
862+
863+
expect(user.reload.website).to eq 'http://example.com'
864+
end
865+
end
866+
867+
context 'when website does not include http' do
868+
it 'adds http before updating' do
869+
user = log_in
870+
871+
put :update, username: user.username, website: 'example.com'
872+
873+
expect(user.reload.website).to eq 'http://example.com'
874+
end
875+
end
849876
end
850877

851878
context 'without permission to update' do
852879
it 'does not allow the update' do
853-
user = create_authenticated_user('Billy Bob')
854-
stub_guardian(user) do |guardian|
855-
guardian.stubs(:ensure_can_edit!).
856-
with(user).raises(Discourse::InvalidAccess.new)
857-
end
880+
user = Fabricate(:user, name: 'Billy Bob')
881+
log_in_user(user)
882+
guardian = Guardian.new(user)
883+
guardian.stubs(:ensure_can_edit!).with(user).raises(Discourse::InvalidAccess.new)
884+
Guardian.stubs(new: guardian).with(user)
858885

859886
put :update, username: user.username, name: 'Jim Tom'
860887

@@ -1104,16 +1131,4 @@ def post_user
11041131
end
11051132

11061133
end
1107-
1108-
private
1109-
1110-
def create_authenticated_user(name)
1111-
log_in_user(Fabricate(:user, name: name))
1112-
end
1113-
1114-
def stub_guardian(user)
1115-
guardian = Guardian.new(user)
1116-
yield(guardian)
1117-
Guardian.stubs(new: guardian).with(user)
1118-
end
11191134
end

0 commit comments

Comments
 (0)