mirror of
https://github.com/we-promise/sure.git
synced 2026-07-16 14:55:23 +00:00
Add ON DELETE CASCADE to rejected_transfers foreign keys (#2211)
This commit is contained in:
@@ -0,0 +1,11 @@
|
||||
class AddCascadeToRejectedTransfersForeignKeys < ActiveRecord::Migration[7.2]
|
||||
def change
|
||||
remove_foreign_key :rejected_transfers, to_table: :transactions, column: :inflow_transaction_id
|
||||
remove_foreign_key :rejected_transfers, to_table: :transactions, column: :outflow_transaction_id
|
||||
|
||||
add_foreign_key :rejected_transfers, :transactions,
|
||||
column: :inflow_transaction_id, on_delete: :cascade
|
||||
add_foreign_key :rejected_transfers, :transactions,
|
||||
column: :outflow_transaction_id, on_delete: :cascade
|
||||
end
|
||||
end
|
||||
4
db/schema.rb
generated
4
db/schema.rb
generated
@@ -2134,8 +2134,8 @@ ActiveRecord::Schema[7.2].define(version: 2026_06_07_071000) do
|
||||
add_foreign_key "recurring_transactions", "accounts", on_delete: :cascade
|
||||
add_foreign_key "recurring_transactions", "families"
|
||||
add_foreign_key "recurring_transactions", "merchants"
|
||||
add_foreign_key "rejected_transfers", "transactions", column: "inflow_transaction_id"
|
||||
add_foreign_key "rejected_transfers", "transactions", column: "outflow_transaction_id"
|
||||
add_foreign_key "rejected_transfers", "transactions", column: "inflow_transaction_id", on_delete: :cascade
|
||||
add_foreign_key "rejected_transfers", "transactions", column: "outflow_transaction_id", on_delete: :cascade
|
||||
add_foreign_key "rule_actions", "rules"
|
||||
add_foreign_key "rule_conditions", "rule_conditions", column: "parent_id"
|
||||
add_foreign_key "rule_conditions", "rules"
|
||||
|
||||
@@ -21,4 +21,28 @@ class Transactions::BulkDeletionsControllerTest < ActionDispatch::IntegrationTes
|
||||
assert_redirected_to transactions_url
|
||||
assert_equal "#{delete_count} transactions deleted", flash[:notice]
|
||||
end
|
||||
|
||||
test "bulk delete with rejected transfers" do
|
||||
entry = entries(:transaction)
|
||||
other_entry = entries(:transfer_out)
|
||||
|
||||
# Create a rejected_transfer referencing the entry's transaction
|
||||
RejectedTransfer.create!(
|
||||
inflow_transaction: entry.entryable,
|
||||
outflow_transaction: other_entry.entryable
|
||||
)
|
||||
|
||||
assert_difference "RejectedTransfer.count", -1 do
|
||||
assert_difference [ "Transaction.count", "Entry.count" ], -1 do
|
||||
post transactions_bulk_deletion_url, params: {
|
||||
bulk_delete: {
|
||||
entry_ids: [ entry.id ]
|
||||
}
|
||||
}
|
||||
end
|
||||
end
|
||||
|
||||
assert_redirected_to transactions_url
|
||||
assert_equal "1 transaction deleted", flash[:notice]
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user