From b37748fb2bb88d26c90488f46f56310d41b74c86 Mon Sep 17 00:00:00 2001 From: Alex Date: Tue, 12 Sep 2023 16:59:22 +1000 Subject: [PATCH] Add regression test for #45722 Adds a test for https://github.com/rails/rails/pull/45722 --- .../encryption/extended_deterministic_queries_test.rb | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/activerecord/test/cases/encryption/extended_deterministic_queries_test.rb b/activerecord/test/cases/encryption/extended_deterministic_queries_test.rb index fa4873faf5509..c7a3f984301e8 100644 --- a/activerecord/test/cases/encryption/extended_deterministic_queries_test.rb +++ b/activerecord/test/cases/encryption/extended_deterministic_queries_test.rb @@ -30,7 +30,7 @@ class ActiveRecord::Encryption::ExtendedDeterministicQueriesTest < ActiveRecord: assert EncryptedBook.find_by("name" => "Dune") end - test "find_or_create works" do + test "find_or_create_by works" do EncryptedBook.find_or_create_by!(name: "Dune") assert EncryptedBook.find_by(name: "Dune") @@ -38,6 +38,13 @@ class ActiveRecord::Encryption::ExtendedDeterministicQueriesTest < ActiveRecord: assert EncryptedBook.find_by(name: "Dune") end + test "does not mutate arguments" do + props = { name: "Dune" } + + assert_equal "Dune", EncryptedBook.find_or_initialize_by(props).name + assert_equal "Dune", props[:name] + end + test "where(...).first_or_create works" do EncryptedBook.where(name: "Dune").first_or_create assert EncryptedBook.exists?(name: "Dune")