Skip to content

Commit c09a82b

Browse files
committed
Coerce test
1 parent 201e8b4 commit c09a82b

File tree

1 file changed

+39
-1
lines changed

1 file changed

+39
-1
lines changed

test/cases/coerced_tests.rb

Lines changed: 39 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1601,7 +1601,7 @@ class TransactionTest < ActiveRecord::TestCase
16011601
def test_releasing_named_savepoints_coerced
16021602
Topic.transaction do
16031603
Topic.connection.materialize_transactions
1604-
1604+
16051605
Topic.connection.create_savepoint("another")
16061606
Topic.connection.release_savepoint("another")
16071607
# We do not have a notion of releasing, so this does nothing vs raise an error.
@@ -1647,6 +1647,44 @@ def test_nested_transactions_after_disable_lazy_transactions_coerced
16471647
assert_match expected, actual
16481648
end
16491649
end
1650+
1651+
# SQL Server does not have query for release_savepoint.
1652+
coerce_tests! :test_nested_transactions_skip_excess_savepoints
1653+
def test_nested_transactions_skip_excess_savepoints_coerced
1654+
capture_sql do
1655+
# RealTransaction (begin..commit)
1656+
Topic.transaction(requires_new: true) do
1657+
# ResetParentTransaction (no queries)
1658+
Topic.transaction(requires_new: true) do
1659+
Topic.delete_all
1660+
# SavepointTransaction (savepoint..release)
1661+
Topic.transaction(requires_new: true) do
1662+
# ResetParentTransaction (no queries)
1663+
Topic.transaction(requires_new: true) do
1664+
Topic.delete_all
1665+
end
1666+
end
1667+
end
1668+
Topic.delete_all
1669+
end
1670+
end
1671+
1672+
actual_queries = ActiveRecord::SQLCounter.log_all
1673+
1674+
expected_queries = [
1675+
/BEGIN/i,
1676+
/DELETE/i,
1677+
/^SAVE TRANSACTION/i,
1678+
/DELETE/i,
1679+
/DELETE/i,
1680+
/COMMIT/i,
1681+
]
1682+
1683+
assert_equal expected_queries.size, actual_queries.size
1684+
expected_queries.zip(actual_queries) do |expected, actual|
1685+
assert_match expected, actual
1686+
end
1687+
end
16501688
end
16511689

16521690
require "models/tag"

0 commit comments

Comments
 (0)