Skip to content

Commit d248f4e

Browse files
committed
Update coerced_tests.rb
1 parent a49ffff commit d248f4e

File tree

1 file changed

+25
-1
lines changed

1 file changed

+25
-1
lines changed

test/cases/coerced_tests.rb

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2104,7 +2104,7 @@ def test_has_many_through_has_and_belongs_to_many_with_has_many_source_reflectio
21042104
end
21052105

21062106
class PreloaderTest < ActiveRecord::TestCase
2107-
# SQL format for `order_id_constraint` different.
2107+
# Need to handle query parameters in SQL regex.
21082108
coerce_tests! :test_preloads_has_many_on_model_with_a_composite_primary_key_through_id_attribute
21092109
def test_preloads_has_many_on_model_with_a_composite_primary_key_through_id_attribute_coerced
21102110
order = cpk_orders(:cpk_groceries_order_2)
@@ -2130,6 +2130,30 @@ def test_preloads_has_many_on_model_with_a_composite_primary_key_through_id_attr
21302130
assert_match(expectation, preload_sql)
21312131
assert_equal order_agreements.sort, loaded_order.order_agreements.sort
21322132
end
2133+
2134+
# Need to handle query parameters in SQL regex.
2135+
coerce_tests! :test_preloads_belongs_to_a_composite_primary_key_model_through_id_attribute
2136+
def test_preloads_belongs_to_a_composite_primary_key_model_through_id_attribute_coerced
2137+
order_agreement = cpk_order_agreements(:order_agreement_three)
2138+
order = cpk_orders(:cpk_groceries_order_2)
2139+
assert_equal order, order_agreement.order
2140+
2141+
loaded_order_agreement = nil
2142+
sql = capture_sql do
2143+
loaded_order_agreement = Cpk::OrderAgreement.where(id: order_agreement.id).includes(:order).to_a.first
2144+
end
2145+
2146+
assert_equal 2, sql.size
2147+
preload_sql = sql.last
2148+
2149+
c = Cpk::Order.connection
2150+
order_id = Regexp.escape(c.quote_table_name("cpk_orders.id"))
2151+
order_constraint = /#{order_id} = @0.*@0 = \d+$/
2152+
expectation = /SELECT.*WHERE.* #{order_constraint}/
2153+
2154+
assert_match(expectation, preload_sql)
2155+
assert_equal order, loaded_order_agreement.order
2156+
end
21332157
end
21342158

21352159
class BasePreventWritesTest < ActiveRecord::TestCase

0 commit comments

Comments
 (0)