]> git.openstreetmap.org Git - rails.git/blob - test/system/dashboard_test.rb
Merge remote-tracking branch 'upstream/pull/6087'
[rails.git] / test / system / dashboard_test.rb
1 require "application_system_test_case"
2
3 class DashboardSystemTest < ApplicationSystemTestCase
4   test "show no users if have no followings" do
5     user = create(:user)
6     sign_in_as(user)
7
8     visit dashboard_path
9     assert_text "You have not followed any user yet."
10   end
11
12   test "show users if have friends" do
13     user = create(:user, :home_lon => 1.1, :home_lat => 1.1)
14     friend_user = create(:user, :home_lon => 1.2, :home_lat => 1.2)
15     create(:follow, :follower => user, :following => friend_user)
16     create(:changeset, :user => friend_user)
17     sign_in_as(user)
18
19     visit dashboard_path
20     assert_no_text "You have not followed any user yet."
21
22     friends_heading = find :element, "h2", :text => "Users you follow"
23     others_heading = find :element, "h2", :text => "Other nearby users"
24
25     assert_link friend_user.display_name, :below => friends_heading, :above => others_heading
26   end
27
28   test "show nearby users with ability to follow" do
29     user = create(:user, :home_lon => 1.1, :home_lat => 1.1)
30     nearby_user = create(:user, :home_lon => 1.2, :home_lat => 1.2)
31     sign_in_as(user)
32
33     visit dashboard_path
34
35     within_content_body do
36       others_nearby_heading = find :element, "h2", :text => "Other nearby users"
37
38       assert_no_text "There are no other users who admit to mapping nearby yet"
39       assert_link nearby_user.display_name, :below => others_nearby_heading
40       assert_link "Follow", :below => others_nearby_heading
41
42       click_on "Follow"
43
44       followings_heading = find :element, "h2", :text => "Users you follow"
45       others_nearby_heading = find :element, "h2", :text => "Other nearby users"
46
47       assert_text "There are no other users who admit to mapping nearby yet"
48       assert_link nearby_user.display_name, :below => followings_heading, :above => others_nearby_heading
49       assert_link "Unfollow", :below => followings_heading, :above => others_nearby_heading
50     end
51   end
52
53   test "show map with home marker if home location is set" do
54     user = create(:user, :display_name => "Fred Tester", :home_lon => 1.1, :home_lat => 1.1)
55     sign_in_as(user)
56
57     visit dashboard_path
58
59     within "#map" do
60       assert_no_text "Your location"
61       assert_no_link "Fred Tester"
62
63       find("img.leaflet-marker-icon").click
64
65       assert_text "Your location"
66       assert_link "Fred Tester"
67
68       click_on "Fred Tester"
69     end
70
71     assert_current_path user_path(user)
72   end
73 end