<% end %>
diff --git a/config/locales/en.yml b/config/locales/en.yml
index 21a7ce0f2..888079a6c 100644
--- a/config/locales/en.yml
+++ b/config/locales/en.yml
@@ -89,7 +89,7 @@ en:
support_url: Support URL
allow_read_prefs: read their user preferences
allow_write_prefs: modify their user preferences
- allow_write_diary: create diary entries, comments and make friends
+ allow_write_diary: create diary entries and comments
allow_write_api: modify the map
allow_read_gpx: read their private GPS traces
allow_write_gpx: upload GPS traces
@@ -476,7 +476,7 @@ en:
title: "Changesets"
title_user: "Changesets by %{user}"
title_user_link_html: "Changesets by %{user_link}"
- title_friend: "Changesets by my friends"
+ title_followed: "Changesets by followings"
title_nearby: "Changesets by nearby users"
empty: "No changesets found."
empty_area: "No changesets in this area."
@@ -542,17 +542,17 @@ en:
popup:
your location: "Your location"
nearby mapper: "Nearby mapper"
- friend: "Friend"
+ following: "Following"
show:
title: My Dashboard
no_home_location_html: "%{edit_profile_link} and set your home location to see nearby users."
edit_your_profile: Edit your profile
- my friends: My friends
- no friends: You have not added any friends yet.
+ followings: Followings
+ no followings: You have not followed any user yet.
nearby users: "Other nearby users"
no nearby users: "There are no other users who admit to mapping nearby yet."
- friends_changesets: "friends' changesets"
- friends_diaries: "friends' diary entries"
+ followed_changesets: "changesets"
+ followed_diaries: "diary entries"
nearby_changesets: "nearby user changesets"
nearby_diaries: "nearby user diary entries"
diary_entries:
@@ -563,7 +563,7 @@ en:
use_map_link: Use Map
index:
title: "Users' Diaries"
- title_friends: "Friends' Diaries"
+ title_followed: "Followings' Diaries"
title_nearby: "Nearby Users' Diaries"
user_title: "%{user}'s Diary"
in_language_title: "Diary Entries in %{language}"
@@ -684,19 +684,22 @@ en:
not_found:
title: File not found
description: Couldn't find a file/directory/API operation by that name on the OpenStreetMap server (HTTP 404)
- friendships:
- make_friend:
- heading: "Add %{user} as a friend?"
- button: "Add as friend"
- success: "%{name} is now your friend!"
- failed: "Sorry, failed to add %{name} as a friend."
- already_a_friend: "You are already friends with %{name}."
- limit_exceeded: "You have friended a lot of users recently. Please wait a while before trying to friend any more."
- remove_friend:
- heading: "Unfriend %{user}?"
- button: "Unfriend"
- success: "%{name} was removed from your friends."
- not_a_friend: "%{name} is not one of your friends."
+ follows:
+ show:
+ follow:
+ heading: "Do you want to follow %{user}?"
+ button: "Follow User"
+ unfollow:
+ heading: "Do you want to unfollow %{user}?"
+ button: "Unfollow User"
+ create:
+ success: "You are now following %{name}!"
+ failed: "Sorry, your request to follow %{name} has failed."
+ already_followed: "You already follow %{name}."
+ limit_exceeded: "You have followed a lot of users recently. Please wait a while before trying to follow any more."
+ destroy:
+ success: "You successfully unfollowed %{name}."
+ not_followed: "You are not following %{name}."
geocoder:
search:
title:
@@ -1660,12 +1663,12 @@ en:
footer_html: "You can also read the message at %{readurl} and you can send a message to the author at %{replyurl}"
friendship_notification:
hi: "Hi %{to_user},"
- subject: "[OpenStreetMap] %{user} added you as a friend"
- had_added_you: "%{user} has added you as a friend on OpenStreetMap."
+ subject: "[OpenStreetMap] %{user} followed you"
+ followed_you: "%{user} is now following you on OpenStreetMap."
see_their_profile: "You can see their profile at %{userurl}."
see_their_profile_html: "You can see their profile at %{userurl}."
- befriend_them: "You can also add them as a friend at %{befriendurl}."
- befriend_them_html: "You can also add them as a friend at %{befriendurl}."
+ follow_them: "You can also follow them at %{followurl}."
+ follow_them_html: "You can also follow them at %{followurl}."
gpx_details:
details: "Your file details:"
filename: Filename
@@ -2690,7 +2693,7 @@ en:
openid: Sign-in using OpenStreetMap
read_prefs: Read user preferences
write_prefs: Modify user preferences
- write_diary: Create diary entries, comments and make friends
+ write_diary: Create diary entries and comments
write_api: Modify the map
read_gpx: Read private GPS traces
write_gpx: Upload GPS traces
@@ -2809,8 +2812,8 @@ en:
edits: Edits
traces: Traces
notes: Map Notes
- remove as friend: Unfriend
- add as friend: Add Friend
+ unfollow: Unfollow
+ follow: Follow
mapper since: "Mapper since:"
last map edit: "Last map edit:"
no activity yet: "No activity yet"
diff --git a/config/routes.rb b/config/routes.rb
index 9cb3a63ed..39dd35f31 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -289,8 +289,12 @@ OpenStreetMap::Application.routes.draw do
resource :profile, :only => [:edit, :update]
# friendships
- match "/user/:display_name/make_friend" => "friendships#make_friend", :via => [:get, :post], :as => "make_friend"
- match "/user/:display_name/remove_friend" => "friendships#remove_friend", :via => [:get, :post], :as => "remove_friend"
+ scope "/user/:display_name" do
+ resource :follow, :only => [:create, :destroy, :show], :path => "follow"
+
+ get "make_friend", :to => redirect("/user/%{display_name}/follow")
+ get "remove_friend", :to => redirect("/user/%{display_name}/follow")
+ end
# user lists
namespace :users do
diff --git a/test/controllers/changesets_controller_test.rb b/test/controllers/changesets_controller_test.rb
index a486e4b5e..9bbca2ab1 100644
--- a/test/controllers/changesets_controller_test.rb
+++ b/test/controllers/changesets_controller_test.rb
@@ -190,8 +190,8 @@ class ChangesetsControllerTest < ActionDispatch::IntegrationTest
# Checks the display of the friends changesets listing
def test_index_friends
private_user = create(:user, :data_public => true)
- friendship = create(:friendship, :befriender => private_user)
- changeset = create(:changeset, :user => friendship.befriendee, :num_changes => 1)
+ follow = create(:follow, :follower => private_user)
+ changeset = create(:changeset, :user => follow.following, :num_changes => 1)
_changeset2 = create(:changeset, :user => create(:user), :num_changes => 1)
get friend_changesets_path
diff --git a/test/controllers/diary_entries_controller_test.rb b/test/controllers/diary_entries_controller_test.rb
index a1c22fff8..c96c433bf 100644
--- a/test/controllers/diary_entries_controller_test.rb
+++ b/test/controllers/diary_entries_controller_test.rb
@@ -384,8 +384,8 @@ class DiaryEntriesControllerTest < ActionDispatch::IntegrationTest
def test_index_friends
user = create(:user)
other_user = create(:user)
- friendship = create(:friendship, :befriender => user)
- diary_entry = create(:diary_entry, :user => friendship.befriendee)
+ follow = create(:follow, :follower => user)
+ diary_entry = create(:diary_entry, :user => follow.following)
_other_entry = create(:diary_entry, :user => other_user)
# Try a list of diary entries for your friends when not logged in
diff --git a/test/controllers/follows_controller_test.rb b/test/controllers/follows_controller_test.rb
new file mode 100644
index 000000000..93bb3bc3e
--- /dev/null
+++ b/test/controllers/follows_controller_test.rb
@@ -0,0 +1,182 @@
+require "test_helper"
+
+class FollowsControllerTest < ActionDispatch::IntegrationTest
+ ##
+ # test all routes which lead to this controller
+ def test_routes
+ assert_routing(
+ { :path => "/user/username/follow", :method => :get },
+ { :controller => "follows", :action => "show", :display_name => "username" }
+ )
+ assert_routing(
+ { :path => "/user/username/follow", :method => :post },
+ { :controller => "follows", :action => "create", :display_name => "username" }
+ )
+ assert_routing(
+ { :path => "/user/username/follow", :method => :delete },
+ { :controller => "follows", :action => "destroy", :display_name => "username" }
+ )
+ end
+
+ def test_follow
+ # Get users to work with
+ user = create(:user)
+ follow = create(:user)
+
+ # Check that the users aren't already friends
+ assert_nil Follow.find_by(:follower => user, :following => follow)
+
+ # When not logged in a GET should ask us to login
+ get follow_path(follow)
+ assert_redirected_to login_path(:referer => follow_path(follow))
+
+ # When not logged in a POST should error
+ post follow_path(follow)
+ assert_response :forbidden
+ assert_nil Follow.find_by(:follower => user, :following => follow)
+
+ session_for(user)
+
+ # When logged in a GET should get a confirmation page
+ get follow_path(follow)
+ assert_response :success
+ assert_template :show
+ assert_select "a[href*='test']", 0
+ assert_nil Follow.find_by(:follower => user, :following => follow)
+
+ # When logged in a POST should add the follow
+ assert_difference "ActionMailer::Base.deliveries.size", 1 do
+ perform_enqueued_jobs do
+ post follow_path(follow)
+ end
+ end
+ assert_redirected_to user_path(follow)
+ assert_match(/You are now following/, flash[:notice])
+ assert Follow.find_by(:follower => user, :following => follow)
+ email = ActionMailer::Base.deliveries.first
+ assert_equal 1, email.to.count
+ assert_equal follow.email, email.to.first
+ ActionMailer::Base.deliveries.clear
+
+ # A second POST should report that the follow already exists
+ assert_no_difference "ActionMailer::Base.deliveries.size" do
+ perform_enqueued_jobs do
+ post follow_path(follow)
+ end
+ end
+ assert_redirected_to user_path(follow)
+ assert_match(/You already follow/, flash[:warning])
+ assert Follow.find_by(:follower => user, :following => follow)
+ end
+
+ def test_follow_with_referer
+ # Get users to work with
+ user = create(:user)
+ follow = create(:user)
+ session_for(user)
+
+ # Check that the users aren't already friends
+ assert_nil Follow.find_by(:follower => user, :following => follow)
+
+ # The GET should preserve any referer
+ get follow_path(follow), :params => { :referer => "/test" }
+ assert_response :success
+ assert_template :show
+ assert_select "a[href*='test']"
+ assert_nil Follow.find_by(:follower => user, :following => follow)
+
+ # When logged in a POST should add the follow and refer us
+ assert_difference "ActionMailer::Base.deliveries.size", 1 do
+ perform_enqueued_jobs do
+ post follow_path(follow), :params => { :referer => "/test" }
+ end
+ end
+ assert_redirected_to "/test"
+ assert_match(/You are now following/, flash[:notice])
+ assert Follow.find_by(:follower => user, :following => follow)
+ email = ActionMailer::Base.deliveries.first
+ assert_equal 1, email.to.count
+ assert_equal follow.email, email.to.first
+ ActionMailer::Base.deliveries.clear
+ end
+
+ def test_follow_unknown_user
+ # Should error when a bogus user is specified
+ session_for(create(:user))
+ get follow_path("No Such User")
+ assert_response :not_found
+ assert_template :no_such_user
+ end
+
+ def test_unfollow
+ # Get users to work with
+ user = create(:user)
+ follow = create(:user)
+ create(:follow, :follower => user, :following => follow)
+
+ # Check that the users are friends
+ assert Follow.find_by(:follower => user, :following => follow)
+
+ # When not logged in a GET should ask us to login
+ get follow_path(follow)
+ assert_redirected_to login_path(:referer => follow_path(follow))
+
+ # When not logged in a POST should error
+ delete follow_path, :params => { :display_name => follow.display_name }
+ assert_response :forbidden
+ assert Follow.find_by(:follower => user, :following => follow)
+
+ session_for(user)
+
+ # When logged in a GET should get a confirmation page
+ get follow_path(follow)
+ assert_response :success
+ assert_template :show
+ assert_select "a[href*='test']", 0
+ assert Follow.find_by(:follower => user, :following => follow)
+
+ # When logged in a DELETE should remove the follow
+ delete follow_path(follow)
+ assert_redirected_to user_path(follow)
+ assert_match(/You successfully unfollowed/, flash[:notice])
+ assert_nil Follow.find_by(:follower => user, :following => follow)
+
+ # A second DELETE should report that the follow does not exist
+ delete follow_path(follow)
+ assert_redirected_to user_path(follow)
+ assert_match(/You are not following/, flash[:error])
+ assert_nil Follow.find_by(:follower => user, :following => follow)
+ end
+
+ def test_unfollow_with_referer
+ # Get users to work with
+ user = create(:user)
+ follow = create(:user)
+ create(:follow, :follower => user, :following => follow)
+ session_for(user)
+
+ # Check that the users are friends
+ assert Follow.find_by(:follower => user, :following => follow)
+
+ # The GET should preserve any referer
+ get follow_path(follow), :params => { :referer => "/test" }
+ assert_response :success
+ assert_template :show
+ assert_select "a[href*='test']"
+ assert Follow.find_by(:follower => user, :following => follow)
+
+ # When logged in a POST should remove the follow and refer
+ delete follow_path(follow), :params => { :referer => "/test" }
+ assert_redirected_to "/test"
+ assert_match(/You successfully unfollowed/, flash[:notice])
+ assert_nil Follow.find_by(:follower => user, :following => follow)
+ end
+
+ def test_unfollow_unknown_user
+ # Should error when a bogus user is specified
+ session_for(create(:user))
+ get follow_path("No Such User")
+ assert_response :not_found
+ assert_template :no_such_user
+ end
+end
diff --git a/test/controllers/friendships_controller_test.rb b/test/controllers/friendships_controller_test.rb
deleted file mode 100644
index f63a8e449..000000000
--- a/test/controllers/friendships_controller_test.rb
+++ /dev/null
@@ -1,198 +0,0 @@
-require "test_helper"
-
-class FriendshipsControllerTest < ActionDispatch::IntegrationTest
- ##
- # test all routes which lead to this controller
- def test_routes
- assert_routing(
- { :path => "/user/username/make_friend", :method => :get },
- { :controller => "friendships", :action => "make_friend", :display_name => "username" }
- )
- assert_routing(
- { :path => "/user/username/make_friend", :method => :post },
- { :controller => "friendships", :action => "make_friend", :display_name => "username" }
- )
- assert_routing(
- { :path => "/user/username/remove_friend", :method => :get },
- { :controller => "friendships", :action => "remove_friend", :display_name => "username" }
- )
- assert_routing(
- { :path => "/user/username/remove_friend", :method => :post },
- { :controller => "friendships", :action => "remove_friend", :display_name => "username" }
- )
- end
-
- def test_make_friend
- # Get users to work with
- user = create(:user)
- friend = create(:user)
-
- # Check that the users aren't already friends
- assert_nil Friendship.find_by(:befriender => user, :befriendee => friend)
-
- # When not logged in a GET should ask us to login
- get make_friend_path(friend)
- assert_redirected_to login_path(:referer => make_friend_path(friend))
-
- # When not logged in a POST should error
- post make_friend_path(friend)
- assert_response :forbidden
- assert_nil Friendship.find_by(:befriender => user, :befriendee => friend)
-
- session_for(user)
-
- # When logged in a GET should get a confirmation page
- get make_friend_path(friend)
- assert_response :success
- assert_template :make_friend
- assert_select "form" do
- assert_select "input[type='hidden'][name='referer']", 0
- assert_select "input[type='submit']", 1
- end
- assert_nil Friendship.find_by(:befriender => user, :befriendee => friend)
-
- # When logged in a POST should add the friendship
- assert_difference "ActionMailer::Base.deliveries.size", 1 do
- perform_enqueued_jobs do
- post make_friend_path(friend)
- end
- end
- assert_redirected_to user_path(friend)
- assert_match(/is now your friend/, flash[:notice])
- assert Friendship.find_by(:befriender => user, :befriendee => friend)
- email = ActionMailer::Base.deliveries.first
- assert_equal 1, email.to.count
- assert_equal friend.email, email.to.first
- ActionMailer::Base.deliveries.clear
-
- # A second POST should report that the friendship already exists
- assert_no_difference "ActionMailer::Base.deliveries.size" do
- perform_enqueued_jobs do
- post make_friend_path(friend)
- end
- end
- assert_redirected_to user_path(friend)
- assert_match(/You are already friends with/, flash[:warning])
- assert Friendship.find_by(:befriender => user, :befriendee => friend)
- end
-
- def test_make_friend_with_referer
- # Get users to work with
- user = create(:user)
- friend = create(:user)
- session_for(user)
-
- # Check that the users aren't already friends
- assert_nil Friendship.find_by(:befriender => user, :befriendee => friend)
-
- # The GET should preserve any referer
- get make_friend_path(friend), :params => { :referer => "/test" }
- assert_response :success
- assert_template :make_friend
- assert_select "form" do
- assert_select "input[type='hidden'][name='referer'][value='/test']", 1
- assert_select "input[type='submit']", 1
- end
- assert_nil Friendship.find_by(:befriender => user, :befriendee => friend)
-
- # When logged in a POST should add the friendship and refer us
- assert_difference "ActionMailer::Base.deliveries.size", 1 do
- perform_enqueued_jobs do
- post make_friend_path(friend), :params => { :referer => "/test" }
- end
- end
- assert_redirected_to "/test"
- assert_match(/is now your friend/, flash[:notice])
- assert Friendship.find_by(:befriender => user, :befriendee => friend)
- email = ActionMailer::Base.deliveries.first
- assert_equal 1, email.to.count
- assert_equal friend.email, email.to.first
- ActionMailer::Base.deliveries.clear
- end
-
- def test_make_friend_unknown_user
- # Should error when a bogus user is specified
- session_for(create(:user))
- get make_friend_path("No Such User")
- assert_response :not_found
- assert_template :no_such_user
- end
-
- def test_remove_friend
- # Get users to work with
- user = create(:user)
- friend = create(:user)
- create(:friendship, :befriender => user, :befriendee => friend)
-
- # Check that the users are friends
- assert Friendship.find_by(:befriender => user, :befriendee => friend)
-
- # When not logged in a GET should ask us to login
- get remove_friend_path(friend)
- assert_redirected_to login_path(:referer => remove_friend_path(friend))
-
- # When not logged in a POST should error
- post remove_friend_path, :params => { :display_name => friend.display_name }
- assert_response :forbidden
- assert Friendship.find_by(:befriender => user, :befriendee => friend)
-
- session_for(user)
-
- # When logged in a GET should get a confirmation page
- get remove_friend_path(friend)
- assert_response :success
- assert_template :remove_friend
- assert_select "form" do
- assert_select "input[type='hidden'][name='referer']", 0
- assert_select "input[type='submit']", 1
- end
- assert Friendship.find_by(:befriender => user, :befriendee => friend)
-
- # When logged in a POST should remove the friendship
- post remove_friend_path(friend)
- assert_redirected_to user_path(friend)
- assert_match(/was removed from your friends/, flash[:notice])
- assert_nil Friendship.find_by(:befriender => user, :befriendee => friend)
-
- # A second POST should report that the friendship does not exist
- post remove_friend_path(friend)
- assert_redirected_to user_path(friend)
- assert_match(/is not one of your friends/, flash[:error])
- assert_nil Friendship.find_by(:befriender => user, :befriendee => friend)
- end
-
- def test_remove_friend_with_referer
- # Get users to work with
- user = create(:user)
- friend = create(:user)
- create(:friendship, :befriender => user, :befriendee => friend)
- session_for(user)
-
- # Check that the users are friends
- assert Friendship.find_by(:befriender => user, :befriendee => friend)
-
- # The GET should preserve any referer
- get remove_friend_path(friend), :params => { :referer => "/test" }
- assert_response :success
- assert_template :remove_friend
- assert_select "form" do
- assert_select "input[type='hidden'][name='referer'][value='/test']", 1
- assert_select "input[type='submit']", 1
- end
- assert Friendship.find_by(:befriender => user, :befriendee => friend)
-
- # When logged in a POST should remove the friendship and refer
- post remove_friend_path(friend), :params => { :referer => "/test" }
- assert_redirected_to "/test"
- assert_match(/was removed from your friends/, flash[:notice])
- assert_nil Friendship.find_by(:befriender => user, :befriendee => friend)
- end
-
- def test_remove_friend_unknown_user
- # Should error when a bogus user is specified
- session_for(create(:user))
- get remove_friend_path("No Such User")
- assert_response :not_found
- assert_template :no_such_user
- end
-end
diff --git a/test/controllers/oauth2_authorized_applications_controller_test.rb b/test/controllers/oauth2_authorized_applications_controller_test.rb
index 3a9088401..584d00ce8 100644
--- a/test/controllers/oauth2_authorized_applications_controller_test.rb
+++ b/test/controllers/oauth2_authorized_applications_controller_test.rb
@@ -56,7 +56,7 @@ class Oauth2AuthorizedApplicationsControllerTest < ActionDispatch::IntegrationTe
assert_select "li", :count => 3
assert_select "li", :text => "Read user preferences"
assert_select "li", :text => "Modify user preferences"
- assert_select "li", :text => "Create diary entries, comments and make friends"
+ assert_select "li", :text => "Create diary entries and comments"
end
end
diff --git a/test/factories/follows.rb b/test/factories/follows.rb
new file mode 100644
index 000000000..01dad52e0
--- /dev/null
+++ b/test/factories/follows.rb
@@ -0,0 +1,6 @@
+FactoryBot.define do
+ factory :follow do
+ follower :factory => :user
+ following :factory => :user
+ end
+end
diff --git a/test/factories/friendships.rb b/test/factories/friendships.rb
deleted file mode 100644
index 12df2a945..000000000
--- a/test/factories/friendships.rb
+++ /dev/null
@@ -1,6 +0,0 @@
-FactoryBot.define do
- factory :friendship do
- befriender :factory => :user
- befriendee :factory => :user
- end
-end
diff --git a/test/models/user_test.rb b/test/models/user_test.rb
index 6836c4f70..3b600fc87 100644
--- a/test/models/user_test.rb
+++ b/test/models/user_test.rb
@@ -140,7 +140,7 @@ class UserTest < ActiveSupport::TestCase
alice = create(:user, :active)
bob = create(:user, :active)
charlie = create(:user, :active)
- create(:friendship, :befriender => alice, :befriendee => bob)
+ create(:follow, :follower => alice, :following => bob)
assert alice.friends_with?(bob)
assert_not alice.friends_with?(charlie)
@@ -174,13 +174,13 @@ class UserTest < ActiveSupport::TestCase
def test_friends
norm = create(:user, :active)
sec = create(:user, :active)
- create(:friendship, :befriender => norm, :befriendee => sec)
+ create(:follow, :follower => norm, :following => sec)
- assert_equal [sec], norm.friends
- assert_equal 1, norm.friends.size
+ assert_equal [sec], norm.followings
+ assert_equal 1, norm.followings.size
- assert_empty sec.friends
- assert_equal 0, sec.friends.size
+ assert_empty sec.followings
+ assert_equal 0, sec.followings.size
end
def test_user_preferred_editor
diff --git a/test/system/dashboard_test.rb b/test/system/dashboard_test.rb
index bc2e3b4e9..2ab4db5fa 100644
--- a/test/system/dashboard_test.rb
+++ b/test/system/dashboard_test.rb
@@ -1,25 +1,25 @@
require "application_system_test_case"
class DashboardSystemTest < ApplicationSystemTestCase
- test "show no users if have no friends" do
+ test "show no users if have no followings" do
user = create(:user)
sign_in_as(user)
visit dashboard_path
- assert_text "You have not added any friends yet."
+ assert_text "You have not followed any user yet."
end
test "show users if have friends" do
user = create(:user, :home_lon => 1.1, :home_lat => 1.1)
friend_user = create(:user, :home_lon => 1.2, :home_lat => 1.2)
- create(:friendship, :befriender => user, :befriendee => friend_user)
+ create(:follow, :follower => user, :following => friend_user)
create(:changeset, :user => friend_user)
sign_in_as(user)
visit dashboard_path
- assert_no_text "You have not added any friends yet."
+ assert_no_text "You have not followed any user yet."
- friends_heading = find :element, "h2", :text => "My friends"
+ friends_heading = find :element, "h2", :text => "Followings"
others_heading = find :element, "h2", :text => "Other nearby users"
assert_link friend_user.display_name, :below => friends_heading, :above => others_heading
diff --git a/test/system/follows_test.rb b/test/system/follows_test.rb
new file mode 100644
index 000000000..f9f00ff7f
--- /dev/null
+++ b/test/system/follows_test.rb
@@ -0,0 +1,18 @@
+require "application_system_test_case"
+
+class FollowsTest < ApplicationSystemTestCase
+ test "show message when max frienships limit is exceeded" do
+ following = create(:user)
+
+ sign_in_as create(:user)
+
+ with_settings(:max_friends_per_hour => 0) do
+ visit user_path(following)
+ assert_link "Follow"
+
+ click_on "Follow"
+ assert_text "You have followed a lot of users recently"
+ assert_link "Follow"
+ end
+ end
+end
diff --git a/test/system/friendships_test.rb b/test/system/friendships_test.rb
deleted file mode 100644
index 1db4d3c25..000000000
--- a/test/system/friendships_test.rb
+++ /dev/null
@@ -1,18 +0,0 @@
-require "application_system_test_case"
-
-class FriendshipsTest < ApplicationSystemTestCase
- test "show message when max frienships limit is exceeded" do
- befriendee = create(:user)
-
- sign_in_as create(:user)
-
- with_settings(:max_friends_per_hour => 0) do
- visit user_path(befriendee)
- assert_link "Add Friend"
-
- click_on "Add Friend"
- assert_text "You have friended a lot of users recently"
- assert_link "Add Friend"
- end
- end
-end