commit: 4bc625166e381da15aea667b968e186c11be0217
parent: 61ed133fea80041b354c78b043cec72dd8644101
Author: Eugen Rochko <eugen@zeonfederated.com>
Date: Wed, 21 Feb 2018 23:22:12 +0100
Fix bug in relationships API introduced by #6482 (#6527)
It was merge when it needed to be deep_merge. And added some tests
Diffstat:
3 files changed, 24 insertions(+), 2 deletions(-)
diff --git a/app/controllers/api/v1/accounts/relationships_controller.rb b/app/controllers/api/v1/accounts/relationships_controller.rb
@@ -21,6 +21,6 @@ class Api::V1::Accounts::RelationshipsController < Api::BaseController
end
def account_ids
- @_account_ids ||= Array(params[:id]).map(&:to_i)
+ Array(params[:id]).map(&:to_i)
end
end
diff --git a/app/presenters/account_relationships_presenter.rb b/app/presenters/account_relationships_presenter.rb
@@ -45,7 +45,7 @@ class AccountRelationshipsPresenter
maps_for_account = Rails.cache.read("relationship:#{@current_account_id}:#{account_id}")
if maps_for_account.is_a?(Hash)
- @cached.merge!(maps_for_account)
+ @cached.deep_merge!(maps_for_account)
else
@uncached_account_ids << account_id
end
diff --git a/spec/controllers/api/v1/accounts/relationships_controller_spec.rb b/spec/controllers/api/v1/accounts/relationships_controller_spec.rb
@@ -66,6 +66,28 @@ describe Api::V1::Accounts::RelationshipsController do
expect(json.second[:requested]).to be false
expect(json.second[:domain_blocking]).to be false
end
+
+ it 'returns JSON with correct data on cached requests too' do
+ get :index, params: { id: [simon.id] }
+
+ json = body_as_json
+
+ expect(json).to be_a Enumerable
+ expect(json.first[:following]).to be true
+ expect(json.first[:showing_reblogs]).to be true
+ end
+
+ it 'returns JSON with correct data after change too' do
+ user.account.unfollow!(simon)
+
+ get :index, params: { id: [simon.id] }
+
+ json = body_as_json
+
+ expect(json).to be_a Enumerable
+ expect(json.first[:following]).to be false
+ expect(json.first[:showing_reblogs]).to be false
+ end
end
end
end