From d2e2b3d2b1cdddfb71ea6b52335902f33672bffe Mon Sep 17 00:00:00 2001 From: evazion Date: Sat, 14 Apr 2018 10:51:29 -0500 Subject: [PATCH] pagination: add paginator tests. --- test/unit/paginator_test.rb | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 test/unit/paginator_test.rb diff --git a/test/unit/paginator_test.rb b/test/unit/paginator_test.rb new file mode 100644 index 000000000..2f1eb9767 --- /dev/null +++ b/test/unit/paginator_test.rb @@ -0,0 +1,34 @@ +require 'test_helper' + +class PaginatorTest < ActiveSupport::TestCase + setup do + @posts = FactoryBot.create_list(:post, 5) + end + + context "sequential pagination (before)" do + should "return the correct set of records" do + expected_posts = Post.limit(3).order(id: :desc) + posts = Post.paginate("b9999999", limit: 3) + + assert_equal(expected_posts.map(&:id), posts.map(&:id)) + end + end + + context "sequential pagination (after)" do + should "return the correct set of records" do + expected_posts = Post.limit(3).order(id: :asc).reverse + posts = Post.paginate("a0", limit: 3) + + assert_equal(expected_posts.map(&:id), posts.map(&:id)) + end + end + + context "numbered pagination" do + should "return the correct set of records" do + expected_posts = Post.limit(3).order(id: :desc) + posts = Post.order(id: :desc).paginate("1", limit: 3) + + assert_equal(expected_posts.map(&:id), posts.map(&:id)) + end + end +end