diff --git a/.travis.yml b/.travis.yml index a06c8100e3..a2e309d984 100644 --- a/.travis.yml +++ b/.travis.yml @@ -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 diff --git a/app/assets/javascripts/components/reducers/timelines.jsx b/app/assets/javascripts/components/reducers/timelines.jsx index 9fb84b585e..d4c6d43b44 100644 --- a/app/assets/javascripts/components/reducers/timelines.jsx +++ b/app/assets/javascripts/components/reducers/timelines.jsx @@ -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); }; diff --git a/app/models/follow_suggestion.rb b/app/models/follow_suggestion.rb index c14dba6725..108a948a29 100644 --- a/app/models/follow_suggestion.rb +++ b/app/models/follow_suggestion.rb @@ -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 [] diff --git a/spec/rails_helper.rb b/spec/rails_helper.rb index c83051d624..18917f2d92 100644 --- a/spec/rails_helper.rb +++ b/spec/rails_helper.rb @@ -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|