diff --git a/test/pagy/backend_test.rb b/test/pagy/backend_test.rb index 6146a2f88..94c27aa2d 100644 --- a/test/pagy/backend_test.rb +++ b/test/pagy/backend_test.rb @@ -1,41 +1,9 @@ require_relative '../test_helper' -require 'rack' SingleCov.covered! describe Pagy::Backend do - class TestController - include Pagy::Backend - - def params(vars={}) - {a: 'a', page: 3}.merge(vars) - end - - end - - class TestCollection < Array - - def initialize(*args) - super - @collection = self.clone - end - - def offset(value) - @collection = self[value..-1] - self - end - - def limit(value) - @collection[0, value] - end - - def count(*_) - size - end - - end - let(:backend) { TestController.new } @@ -71,21 +39,31 @@ def test_pagy_method_with_vars end - describe "#pagy_get_variables" do + describe "#pagy_get_vars" do before do @collection = TestCollection.new((1..1000).to_a) end - def test_pagy_get_variables_with_default + def test_pagy_get_vars_with_default vars = {} merged = backend.send :pagy_get_vars, @collection, vars - assert_equal({:count=>1000, :page=>3}, merged) + assert_includes(merged.keys, :count) + assert_includes(merged.keys, :page) + assert_equal(1000, merged[:count]) + assert_equal(3, merged[:page]) end - def test_pagy_get_variables_with_vars + def test_pagy_get_vars_with_vars vars = {page: 2, items: 10, link_extra: 'X'} merged = backend.send :pagy_get_vars, @collection, vars - assert_equal({:count=>1000, :page=>2, :items=>10, :link_extra=>"X"}, merged) + assert_includes(merged.keys, :count) + assert_includes(merged.keys, :page) + assert_includes(merged.keys, :items) + assert_includes(merged.keys, :link_extra) + assert_equal(1000, merged[:count]) + assert_equal(2, merged[:page]) + assert_equal(10, merged[:items]) + assert_equal('X', merged[:link_extra]) end end diff --git a/test/pagy/frontend_test.rb b/test/pagy/frontend_test.rb index 07d66e316..14857cf93 100644 --- a/test/pagy/frontend_test.rb +++ b/test/pagy/frontend_test.rb @@ -1,24 +1,9 @@ require_relative '../test_helper' -require 'rack' SingleCov.covered! describe Pagy::Frontend do - class TestView - include Pagy::Frontend - - def request - Rack::Request.new('SCRIPT_NAME' => '/foo') - end - end - - class TestViewOverride < TestView - def pagy_get_params(params) - params.except(:a).merge!(k: 'k') - end - end - let(:frontend) { TestView.new } describe "#pagy_nav" do diff --git a/test/test_helper.rb b/test/test_helper.rb index 435f9079a..39c37b2f6 100644 --- a/test/test_helper.rb +++ b/test/test_helper.rb @@ -5,5 +5,8 @@ $LOAD_PATH.unshift File.expand_path("../../lib", __FILE__) require 'pagy' -require_relative 'array' +require 'rack' +require_relative 'test_helper/array' +require_relative 'test_helper/frontend' +require_relative 'test_helper/backend' require "minitest/autorun" diff --git a/test/array.rb b/test/test_helper/array.rb similarity index 100% rename from test/array.rb rename to test/test_helper/array.rb diff --git a/test/test_helper/backend.rb b/test/test_helper/backend.rb new file mode 100644 index 000000000..626312c75 --- /dev/null +++ b/test/test_helper/backend.rb @@ -0,0 +1,32 @@ +class TestController + include Pagy::Backend + + attr_reader :params + + def initialize(params={a: 'a', page: 3}) + @params = params + end + +end + +class TestCollection < Array + + def initialize(*args) + super + @collection = self.clone + end + + def offset(value) + @collection = self[value..-1] + self + end + + def limit(value) + @collection[0, value] + end + + def count(*_) + size + end + +end diff --git a/test/test_helper/frontend.rb b/test/test_helper/frontend.rb new file mode 100644 index 000000000..05bdf6c0a --- /dev/null +++ b/test/test_helper/frontend.rb @@ -0,0 +1,14 @@ +class TestView + include Pagy::Frontend + + def request + Rack::Request.new('SCRIPT_NAME' => '/foo') + end +end + +class TestViewOverride < TestView + def pagy_get_params(params) + params.except(:a).merge!(k: 'k') + end +end +