From: Tom Hughes Date: Sun, 5 May 2024 17:54:57 +0000 (+0100) Subject: Merge remote-tracking branch 'upstream/pull/4753' X-Git-Tag: live~1002 X-Git-Url: https://git.openstreetmap.org./rails.git/commitdiff_plain/51d778097f031631a38236e7ab9a37f75a4580dc?hp=926788ff9a2e3b34d1a6445d3a68ce7c614ef615 Merge remote-tracking branch 'upstream/pull/4753' --- diff --git a/app/controllers/messages_controller.rb b/app/controllers/messages_controller.rb index d231fddde..111a31f96 100644 --- a/app/controllers/messages_controller.rb +++ b/app/controllers/messages_controller.rb @@ -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" diff --git a/test/controllers/messages_controller_test.rb b/test/controllers/messages_controller_test.rb index fd4a5ed10..69b0107a8 100644 --- a/test/controllers/messages_controller_test.rb +++ b/test/controllers/messages_controller_test.rb @@ -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) diff --git a/yarn.lock b/yarn.lock index a1fdc4e14..f40f5e46b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -34,10 +34,10 @@ 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"