]> git.openstreetmap.org Git - rails.git/commitdiff
Merge remote-tracking branch 'upstream/pull/4753'
authorTom Hughes <tom@compton.nu>
Sun, 5 May 2024 17:54:57 +0000 (18:54 +0100)
committerTom Hughes <tom@compton.nu>
Sun, 5 May 2024 17:54:57 +0000 (18:54 +0100)
app/controllers/messages_controller.rb
test/controllers/messages_controller_test.rb
yarn.lock

index d231fddde32945eff8a7454e3d7a09d37318bfc6..111a31f96ae8cf4b27ce108215368aad5207d78b 100644 (file)
@@ -127,7 +127,7 @@ class MessagesController < ApplicationController
     @message.message_read = message_read
     if @message.save
       flash[:notice] = notice
-      redirect_back_or_to inbox_messages_path, :status => :see_other
+      redirect_to inbox_messages_path, :status => :see_other
     end
   rescue ActiveRecord::RecordNotFound
     @title = t "messages.no_such_message.title"
index fd4a5ed10e1561dbcf5a7c54fe036441a12e78ed..69b0107a854641a8c4129c4c54271eb2834d92d1 100644 (file)
@@ -233,35 +233,35 @@ class MessagesControllerTest < ActionDispatch::IntegrationTest
     user = create(:user)
     recipient_user = create(:user)
     other_user = create(:user)
-    unread_message = create(:message, :unread, :sender => user, :recipient => recipient_user)
+    message = create(:message, :unread, :sender => user, :recipient => recipient_user)
 
     # Check that the message reply page requires us to login
-    get message_reply_path(:message_id => unread_message)
-    assert_redirected_to login_path(:referer => message_reply_path(:message_id => unread_message.id))
+    get message_reply_path(:message_id => message)
+    assert_redirected_to login_path(:referer => message_reply_path(:message_id => message.id))
 
     # Login as the wrong user
     session_for(other_user)
 
     # Check that we can't reply to somebody else's message
-    get message_reply_path(:message_id => unread_message)
-    assert_redirected_to login_path(:referer => message_reply_path(:message_id => unread_message.id))
+    get message_reply_path(:message_id => message)
+    assert_redirected_to login_path(:referer => message_reply_path(:message_id => message.id))
     assert_equal "You are logged in as `#{other_user.display_name}' but the message you have asked to reply to was not sent to that user. Please log in as the correct user in order to reply.", flash[:notice]
 
     # Login as the right user
     session_for(recipient_user)
 
     # Check that the message reply page loads
-    get message_reply_path(:message_id => unread_message)
+    get message_reply_path(:message_id => message)
     assert_response :success
     assert_template "new"
-    assert_select "title", "Re: #{unread_message.title} | OpenStreetMap"
+    assert_select "title", "Re: #{message.title} | OpenStreetMap"
     assert_select "form[action='/messages']", :count => 1 do
       assert_select "input[type='hidden'][name='display_name'][value='#{user.display_name}']"
-      assert_select "input#message_title[value='Re: #{unread_message.title}']", :count => 1
+      assert_select "input#message_title[value='Re: #{message.title}']", :count => 1
       assert_select "textarea#message_body", :count => 1
       assert_select "input[type='submit'][value='Send']", :count => 1
     end
-    assert Message.find(unread_message.id).message_read
+    assert Message.find(message.id).message_read
 
     # Asking to reply to a message with a bogus ID should fail
     get message_reply_path(:message_id => 99999)
@@ -275,39 +275,39 @@ class MessagesControllerTest < ActionDispatch::IntegrationTest
     user = create(:user)
     recipient_user = create(:user)
     other_user = create(:user)
-    unread_message = create(:message, :unread, :sender => user, :recipient => recipient_user)
+    message = create(:message, :unread, :sender => user, :recipient => recipient_user)
 
     # Check that the show message page requires us to login
-    get message_path(:id => unread_message)
-    assert_redirected_to login_path(:referer => message_path(:id => unread_message.id))
+    get message_path(:id => message)
+    assert_redirected_to login_path(:referer => message_path(:id => message.id))
 
     # Login as the wrong user
     session_for(other_user)
 
     # Check that we can't read the message
-    get message_path(:id => unread_message)
-    assert_redirected_to login_path(:referer => message_path(:id => unread_message.id))
+    get message_path(:id => message)
+    assert_redirected_to login_path(:referer => message_path(:id => message.id))
     assert_equal "You are logged in as `#{other_user.display_name}' but the message you have asked to read was not sent by or to that user. Please log in as the correct user in order to read it.", flash[:notice]
 
     # Login as the message sender
     session_for(user)
 
     # Check that the message sender can read the message
-    get message_path(:id => unread_message)
+    get message_path(:id => message)
     assert_response :success
     assert_template "show"
     assert_select "a[href='#{user_path recipient_user}']", :text => recipient_user.display_name
-    assert_not Message.find(unread_message.id).message_read
+    assert_not Message.find(message.id).message_read
 
     # Login as the message recipient
     session_for(recipient_user)
 
     # Check that the message recipient can read the message
-    get message_path(:id => unread_message)
+    get message_path(:id => message)
     assert_response :success
     assert_template "show"
     assert_select "a[href='#{user_path user}']", :text => user.display_name
-    assert Message.find(unread_message.id).message_read
+    assert Message.find(message.id).message_read
 
     # Asking to read a message with a bogus ID should fail
     get message_path(:id => 99999)
@@ -372,17 +372,17 @@ class MessagesControllerTest < ActionDispatch::IntegrationTest
     user = create(:user)
     recipient_user = create(:user)
     other_user = create(:user)
-    unread_message = create(:message, :unread, :sender => user, :recipient => recipient_user)
+    message = create(:message, :unread, :sender => user, :recipient => recipient_user)
 
     # Check that the marking a message requires us to login
-    post message_mark_path(:message_id => unread_message)
+    post message_mark_path(:message_id => message)
     assert_response :forbidden
 
     # Login as a user with no messages
     session_for(other_user)
 
     # Check that marking a message we didn't send or receive fails
-    post message_mark_path(:message_id => unread_message)
+    post message_mark_path(:message_id => message)
     assert_response :not_found
     assert_template "no_such_message"
 
@@ -390,24 +390,24 @@ class MessagesControllerTest < ActionDispatch::IntegrationTest
     session_for(recipient_user)
 
     # Check that the marking a message read works
-    post message_mark_path(:message_id => unread_message, :mark => "read")
+    post message_mark_path(:message_id => message, :mark => "read")
     assert_redirected_to inbox_messages_path
-    assert Message.find(unread_message.id).message_read
+    assert Message.find(message.id).message_read
 
     # Check that the marking a message unread works
-    post message_mark_path(:message_id => unread_message, :mark => "unread")
+    post message_mark_path(:message_id => message, :mark => "unread")
     assert_redirected_to inbox_messages_path
-    assert_not Message.find(unread_message.id).message_read
+    assert_not Message.find(message.id).message_read
 
-    # Check that the marking a message read via XHR works
-    post message_mark_path(:message_id => unread_message, :mark => "read")
-    assert_response :see_other
-    assert Message.find(unread_message.id).message_read
+    # Check that the marking a message read works and redirects to inbox from the message page
+    post message_mark_path(:message_id => message, :mark => "read"), :headers => { :referer => message_path(message) }
+    assert_redirected_to inbox_messages_path
+    assert Message.find(message.id).message_read
 
-    # Check that the marking a message unread via XHR works
-    post message_mark_path(:message_id => unread_message, :mark => "unread")
-    assert_response :see_other
-    assert_not Message.find(unread_message.id).message_read
+    # Check that the marking a message unread works and redirects to inbox from the message page
+    post message_mark_path(:message_id => message, :mark => "unread"), :headers => { :referer => message_path(message) }
+    assert_redirected_to inbox_messages_path
+    assert_not Message.find(message.id).message_read
 
     # Asking to mark a message with a bogus ID should fail
     post message_mark_path(:message_id => 99999)
index a1fdc4e14111898457e6105f5153db7072268e77..f40f5e46bd8e4a54f88fd3bc43593c8b9e8c3b36 100644 (file)
--- a/yarn.lock
+++ b/yarn.lock
     minimatch "^3.1.2"
     strip-json-comments "^3.1.1"
 
-"@eslint/js@9.1.1":
-  version "9.1.1"
-  resolved "https://registry.yarnpkg.com/@eslint/js/-/js-9.1.1.tgz#eb0f82461d12779bbafc1b5045cde3143d350a8a"
-  integrity sha512-5WoDz3Y19Bg2BnErkZTp0en+c/i9PvgFS7MBe1+m60HjFr0hrphlAGp4yzI7pxpt4xShln4ZyYp4neJm8hmOkQ==
+"@eslint/js@9.2.0":
+  version "9.2.0"
+  resolved "https://registry.yarnpkg.com/@eslint/js/-/js-9.2.0.tgz#b0a9123e8e91a3d9a2eed3a04a6ed44fdab639aa"
+  integrity sha512-ESiIudvhoYni+MdsI8oD7skpprZ89qKocwRM2KEvhhBJ9nl5MRh7BXU5GTod7Mdygq+AUl+QzId6iWJKR/wABA==
 
 "@humanwhocodes/config-array@^0.13.0":
   version "0.13.0"
@@ -251,14 +251,14 @@ eslint-visitor-keys@^4.0.0:
   integrity sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw==
 
 eslint@^9.0.0:
-  version "9.1.1"
-  resolved "https://registry.yarnpkg.com/eslint/-/eslint-9.1.1.tgz#39ec657ccd12813cb4a1dab2f9229dcc6e468271"
-  integrity sha512-b4cRQ0BeZcSEzPpY2PjFY70VbO32K7BStTGtBsnIGdTSEEQzBi8hPBcGQmTG2zUvFr9uLe0TK42bw8YszuHEqg==
+  version "9.2.0"
+  resolved "https://registry.yarnpkg.com/eslint/-/eslint-9.2.0.tgz#0700ebc99528753315d78090876911d3cdbf19fe"
+  integrity sha512-0n/I88vZpCOzO+PQpt0lbsqmn9AsnsJAQseIqhZFI8ibQT0U1AkEKRxA3EVMos0BoHSXDQvCXY25TUjB5tr8Og==
   dependencies:
     "@eslint-community/eslint-utils" "^4.2.0"
     "@eslint-community/regexpp" "^4.6.1"
     "@eslint/eslintrc" "^3.0.2"
-    "@eslint/js" "9.1.1"
+    "@eslint/js" "9.2.0"
     "@humanwhocodes/config-array" "^0.13.0"
     "@humanwhocodes/module-importer" "^1.0.1"
     "@humanwhocodes/retry" "^0.2.3"