diff options
| author | mo khan <mo@mokhan.ca> | 2015-01-27 22:27:29 -0700 |
|---|---|---|
| committer | mo khan <mo@mokhan.ca> | 2015-01-27 22:27:29 -0700 |
| commit | c214d40088aaa0c995b19147ec30b1382eb160fb (patch) | |
| tree | ddc8bc8e21ca85733089c6e13671955fb152897e /spec/controllers/api | |
| parent | f653e8007ddd8f8cb53161771e26b86435e1b972 (diff) | |
add specs for updating a profile.
Diffstat (limited to 'spec/controllers/api')
| -rw-r--r-- | spec/controllers/api/v1/profiles_controller_spec.rb | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/spec/controllers/api/v1/profiles_controller_spec.rb b/spec/controllers/api/v1/profiles_controller_spec.rb new file mode 100644 index 00000000..3789694c --- /dev/null +++ b/spec/controllers/api/v1/profiles_controller_spec.rb @@ -0,0 +1,50 @@ +require 'rails_helper' + +module Api + module V1 + describe ProfilesController do + render_views + let(:user) { create(:user) } + + before :each do + request.env["HTTP_AUTHORIZATION"] = ActionController::HttpAuthentication::Token.encode_credentials(user.authentication_token) + end + + describe "#show" do + it 'loads the current users profile' do + xhr :get, :show, id: 'me' + expect(assigns(:profile)).to eql(user) + end + end + + describe "#update" do + it 'updates the users profile' do + new_attributes = { + name: 'new name', + email: 'new@example.com', + city: 'new town', + website: 'http://example.com', + twitter: 'blabber', + facebook: 'facebookie', + } + + xhr :patch, :update, id: 'me', profile: new_attributes + + user.reload + expect(user.name).to eql('new name') + expect(user.email).to eql('new@example.com') + expect(user.city).to eql('new town') + expect(user.website).to eql('http://example.com') + expect(user.twitter).to eql('blabber') + expect(user.facebook).to eql('facebookie') + end + + it 'returns errors' do + xhr :patch, :update, id: 'me', profile: { email: '' } + json = JSON.parse(response.body) + expect(json["email"]).to_not be_empty + end + end + end + end +end |
