diff --git a/test/cases/coerced_tests.rb b/test/cases/coerced_tests.rb index 11d980311..3d56cf48f 100644 --- a/test/cases/coerced_tests.rb +++ b/test/cases/coerced_tests.rb @@ -1101,8 +1101,8 @@ def test_member_on_unloaded_relation_without_match_coerced end # Check for `FETCH NEXT x ROWS` rather then `LIMIT`. - coerce_tests! :test_implicit_order_column_is_configurable - def test_implicit_order_column_is_configurable_coerced + coerce_tests! :test_implicit_order_column_is_configurable_with_a_single_value + def test_implicit_order_column_is_configurable_with_a_single_value_coerced old_implicit_order_column = Topic.implicit_order_column Topic.implicit_order_column = "title" @@ -1117,6 +1117,32 @@ def test_implicit_order_column_is_configurable_coerced Topic.implicit_order_column = old_implicit_order_column end + # Check for `FETCH NEXT x ROWS` rather then `LIMIT`. + coerce_tests! :test_implicit_order_column_is_configurable_with_multiple_values + def test_implicit_order_column_is_configurable_with_multiple_values_coerced + old_implicit_order_column = Topic.implicit_order_column + Topic.implicit_order_column = ["title", "author_name"] + + assert_queries_match(/ORDER BY #{Regexp.escape(quote_table_name("topics.title"))} DESC, #{Regexp.escape(quote_table_name("topics.author_name"))} DESC, #{Regexp.escape(quote_table_name("topics.id"))} DESC OFFSET 0 ROWS FETCH NEXT @0 ROWS ONLY.*@0 = 1/i) { + Topic.last + } + ensure + Topic.implicit_order_column = old_implicit_order_column + end + + # Check for `FETCH NEXT x ROWS` rather then `LIMIT`. + coerce_tests! :test_ordering_does_not_append_primary_keys_or_query_constraints_if_passed_an_implicit_order_column_array_ending_in_nil + def test_ordering_does_not_append_primary_keys_or_query_constraints_if_passed_an_implicit_order_column_array_ending_in_nil_coerced + old_implicit_order_column = Topic.implicit_order_column + Topic.implicit_order_column = ["author_name", nil] + + assert_queries_match(/ORDER BY #{Regexp.escape(quote_table_name("topics.author_name"))} DESC OFFSET 0 ROWS FETCH NEXT @0 ROWS ONLY.*@0 = 1/i) { + Topic.last + } + ensure + Topic.implicit_order_column = old_implicit_order_column + end + # Check for `FETCH NEXT x ROWS` rather then `LIMIT`. coerce_tests! :test_implicit_order_set_to_primary_key def test_implicit_order_set_to_primary_key_coerced