From f23569717825dea426c515c79580bd15c6d06ddb Mon Sep 17 00:00:00 2001 From: Tony Vincent Date: Mon, 14 Apr 2025 15:05:25 +0200 Subject: [PATCH] Fix: Fix unalble to reject automatched transfers (#2102) Co-authored-by: Zach Gollwitzer --- app/controllers/transfers_controller.rb | 2 +- test/controllers/transfers_controller_test.rb | 20 +++++++++++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/app/controllers/transfers_controller.rb b/app/controllers/transfers_controller.rb index c20ccacc..895dcfa2 100644 --- a/app/controllers/transfers_controller.rb +++ b/app/controllers/transfers_controller.rb @@ -38,7 +38,7 @@ class TransfersController < ApplicationController def update Transfer.transaction do update_transfer_status - update_transfer_details + update_transfer_details unless transfer_update_params[:status] == "rejected" end respond_to do |format| diff --git a/test/controllers/transfers_controller_test.rb b/test/controllers/transfers_controller_test.rb index 3350b2c6..9959f45b 100644 --- a/test/controllers/transfers_controller_test.rb +++ b/test/controllers/transfers_controller_test.rb @@ -41,4 +41,24 @@ class TransfersControllerTest < ActionDispatch::IntegrationTest assert_equal "Transfer updated", flash[:notice] assert_equal "Test notes", transfer.reload.notes end + + test "handles rejection without FrozenError" do + transfer = transfers(:one) + + assert_difference "Transfer.count", -1 do + patch transfer_url(transfer), params: { + transfer: { + status: "rejected" + } + } + end + + assert_redirected_to transactions_url + assert_equal "Transfer updated", flash[:notice] + + # Verify the transfer was actually destroyed + assert_raises(ActiveRecord::RecordNotFound) do + transfer.reload + end + end end