diff options
author | Ryuta Kamizono <kamipo@gmail.com> | 2018-01-07 12:42:37 +0900 |
---|---|---|
committer | Ryuta Kamizono <kamipo@gmail.com> | 2018-01-07 12:52:59 +0900 |
commit | 68754d37706f11ca363b3108eda10749b9957817 (patch) | |
tree | c874adc065384214f1876ce1c3ae7e22cbff52d9 /activerecord/test/cases | |
parent | a194c527fa7b16840fd1b1250dc9f624c6536546 (diff) | |
download | rails-68754d37706f11ca363b3108eda10749b9957817.tar.gz rails-68754d37706f11ca363b3108eda10749b9957817.tar.bz2 rails-68754d37706f11ca363b3108eda10749b9957817.zip |
Fix `last` with `offset` to behave consistently with loaded relation
Currently `last` with `offset` behaves incorrectly because `offset` can
not be reversed like `limit`. Therefore, `offset` should also be handled
like `limit`.
Diffstat (limited to 'activerecord/test/cases')
-rw-r--r-- | activerecord/test/cases/finder_test.rb | 12 |
1 files changed, 4 insertions, 8 deletions
diff --git a/activerecord/test/cases/finder_test.rb b/activerecord/test/cases/finder_test.rb index 8369a10b5a..c0485a7be7 100644 --- a/activerecord/test/cases/finder_test.rb +++ b/activerecord/test/cases/finder_test.rb @@ -677,6 +677,10 @@ class FinderTest < ActiveRecord::TestCase assert_equal comments.limit(2).to_a.last(2), comments.limit(2).last(2) assert_equal comments.limit(2).to_a.last(3), comments.limit(2).last(3) + assert_equal comments.offset(2).to_a.last, comments.offset(2).last + assert_equal comments.offset(2).to_a.last(2), comments.offset(2).last(2) + assert_equal comments.offset(2).to_a.last(3), comments.offset(2).last(3) + comments = comments.offset(1) assert_equal comments.limit(2).to_a.last, comments.limit(2).last assert_equal comments.limit(2).to_a.last(2), comments.limit(2).last(2) @@ -1049,14 +1053,6 @@ class FinderTest < ActiveRecord::TestCase assert_raise(ArgumentError) { Topic.find_by_title_and_author_name("The First Topic") } end - def test_find_last_with_offset - devs = Developer.order("id") - - assert_equal devs[2], Developer.offset(2).first - assert_equal devs[-3], Developer.offset(2).last - assert_equal devs[-3], Developer.offset(2).order("id DESC").first - end - def test_find_by_nil_attribute topic = Topic.find_by_last_read nil assert_not_nil topic |