]> git.openstreetmap.org Git - rails.git/commitdiff
Convert dashboard test into a system test
authorAnton Khorev <tony29@yandex.ru>
Thu, 22 Aug 2024 14:47:26 +0000 (17:47 +0300)
committerAnton Khorev <tony29@yandex.ru>
Thu, 22 Aug 2024 14:47:26 +0000 (17:47 +0300)
Allows to remove an id used only for testing.

app/views/dashboards/show.html.erb
test/controllers/dashboards_controller_test.rb
test/system/dashboard_test.rb [new file with mode: 0644]

index 6b988a8ec22500dfabd476f81d2c57a0e97b60c1..c4b595e9b931dc6ba5e79be030105f082433a3d3 100644 (file)
@@ -38,7 +38,7 @@
             <li><%= link_to t(".friends_diaries"), friends_diary_entries_path %></li>
           </ul>
         </nav>
-        <div id="friends-container">
+        <div>
           <%= render :partial => "contact", :collection => friends, :locals => { :type => "friend" } %>
         </div>
       <% end %>
index 84f9610e5f3ac7a583a3ee6a513f3f3304585cb9..0adf58a9e4b4cb368c3758a074eba24c83d5541e 100644 (file)
@@ -9,28 +9,4 @@ class DashboardsControllerTest < ActionDispatch::IntegrationTest
       { :controller => "dashboards", :action => "show" }
     )
   end
-
-  def test_show_no_friends
-    user = create(:user)
-    session_for(user)
-
-    get dashboard_path
-  end
-
-  def test_show_with_friends
-    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(:changeset, :user => friend_user)
-    session_for(user)
-
-    get dashboard_path
-
-    # Friends should be visible as we're now logged in
-    assert_select "div#friends-container" do
-      assert_select "div" do
-        assert_select "a[href='/user/#{ERB::Util.u(friend_user.display_name)}']", :count => 1
-      end
-    end
-  end
 end
diff --git a/test/system/dashboard_test.rb b/test/system/dashboard_test.rb
new file mode 100644 (file)
index 0000000..bc2e3b4
--- /dev/null
@@ -0,0 +1,27 @@
+require "application_system_test_case"
+
+class DashboardSystemTest < ApplicationSystemTestCase
+  test "show no users if have no friends" do
+    user = create(:user)
+    sign_in_as(user)
+
+    visit dashboard_path
+    assert_text "You have not added any friends 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(:changeset, :user => friend_user)
+    sign_in_as(user)
+
+    visit dashboard_path
+    assert_no_text "You have not added any friends yet."
+
+    friends_heading = find :element, "h2", :text => "My friends"
+    others_heading = find :element, "h2", :text => "Other nearby users"
+
+    assert_link friend_user.display_name, :below => friends_heading, :above => others_heading
+  end
+end