From 5c6352397257d82e75b90cc5e7de1a3922bde7bd Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Wed, 31 May 2017 15:36:24 -0400 Subject: Spec coverage and refactor for the api/v1/accounts controllers (#3451) --- .../api/v1/accounts/credentials_controller_spec.rb | 55 ++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 spec/controllers/api/v1/accounts/credentials_controller_spec.rb (limited to 'spec/controllers/api/v1/accounts/credentials_controller_spec.rb') diff --git a/spec/controllers/api/v1/accounts/credentials_controller_spec.rb b/spec/controllers/api/v1/accounts/credentials_controller_spec.rb new file mode 100644 index 000000000..89dbca111 --- /dev/null +++ b/spec/controllers/api/v1/accounts/credentials_controller_spec.rb @@ -0,0 +1,55 @@ +require 'rails_helper' + +describe Api::V1::Accounts::CredentialsController do + render_views + + let(:user) { Fabricate(:user, account: Fabricate(:account, username: 'alice')) } + let(:token) { double acceptable?: true, resource_owner_id: user.id } + + before do + allow(controller).to receive(:doorkeeper_token) { token } + end + + describe 'GET #show' do + it 'returns http success' do + get :show + expect(response).to have_http_status(:success) + end + end + + describe 'PATCH #update' do + describe 'with valid data' do + before do + patch :update, params: { + display_name: "Alice Isn't Dead", + note: "Hi!\n\nToot toot!", + avatar: fixture_file_upload('files/avatar.gif', 'image/gif'), + header: fixture_file_upload('files/attachment.jpg', 'image/jpeg'), + } + end + + it 'returns http success' do + expect(response).to have_http_status(:success) + end + + it 'updates account info' do + user.account.reload + + expect(user.account.display_name).to eq("Alice Isn't Dead") + expect(user.account.note).to eq("Hi!\n\nToot toot!") + expect(user.account.avatar).to exist + expect(user.account.header).to exist + end + end + + describe 'with invalid data' do + before do + patch :update, params: { note: 'This is too long. ' * 10 } + end + + it 'returns http unprocessable entity' do + expect(response).to have_http_status(:unprocessable_entity) + end + end + end +end -- cgit