Exclude blocked users from follow suggestions, fix tests
This commit is contained in:
		| @ -6,6 +6,8 @@ env: | ||||
|     - LOCAL_DOMAIN=cb6e6126.ngrok.io | ||||
|     - LOCAL_HTTPS=true | ||||
|     - RAILS_ENV=test | ||||
|     - NEO4J_HOST=localhost | ||||
|     - NEO4J_PORT=7575 | ||||
|  | ||||
| addons: | ||||
|   postgresql: 9.4 | ||||
| @ -20,8 +22,9 @@ bundler_args: --without development production --retry=3 --jobs=3 | ||||
|  | ||||
| install: | ||||
|   - npm install -g npm@3 | ||||
|   - npm install | ||||
|   - npm install -g yarn | ||||
|   - bundle install | ||||
|   - yarn install | ||||
|  | ||||
| before_script: | ||||
|   - bundle exec rails db:create db:migrate | ||||
|  | ||||
| @ -164,6 +164,10 @@ function normalizeAccount(state, account, relationship) { | ||||
| }; | ||||
|  | ||||
| function normalizeRelationship(state, relationship) { | ||||
|   if (state.get('suggestions').includes(relationship.get('id')) && (relationship.get('following') || relationship.get('blocking'))) { | ||||
|     state = state.update('suggestions', list => list.filterNot(id => id === relationship.get('id'))); | ||||
|   } | ||||
|  | ||||
|   return state.setIn(['relationships', relationship.get('id')], relationship); | ||||
| }; | ||||
|  | ||||
|  | ||||
| @ -2,7 +2,7 @@ class FollowSuggestion | ||||
|   def self.get(for_account_id, limit = 6) | ||||
|     neo = Neography::Rest.new | ||||
|     account_ids = neo.execute_query('START a=node:account_index(Account={id}) MATCH (a)-[:follows]->(b)-[:follows]->(c) WHERE a <> c AND NOT (a)-[:follows]->(c) RETURN DISTINCT c.account_id', id: for_account_id) | ||||
|     Account.where(id: account_ids['data'].map(&:first)).limit(limit) unless account_ids.empty? | ||||
|     Account.where(id: account_ids['data'].map(&:first) - Block.where(account_id: for_account_id).pluck(:target_account_id)).limit(limit) unless account_ids.empty? | ||||
|   rescue Neography::NeographyError, Excon::Error::Socket => e | ||||
|     Rails.logger.error e | ||||
|     [] | ||||
|  | ||||
| @ -9,7 +9,7 @@ require 'webmock/rspec' | ||||
| require 'paperclip/matchers' | ||||
|  | ||||
| ActiveRecord::Migration.maintain_test_schema! | ||||
| WebMock.disable_net_connect! | ||||
| WebMock.disable_net_connect!(allow: 'localhost:7575') | ||||
| Sidekiq::Testing.inline! | ||||
|  | ||||
| RSpec.configure do |config| | ||||
|  | ||||
		Reference in New Issue
	
	Block a user