diff --git a/Gemfile.lock b/Gemfile.lock
index 55f717b14..187f6e38f 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -228,6 +228,7 @@ GEM
pathutil (0.16.1)
forwardable-extended (~> 2.6)
public_suffix (2.0.5)
+ rack (2.0.5)
rake (10.5.0)
rb-fsevent (0.10.3)
rb-inotify (0.9.10)
@@ -273,6 +274,7 @@ DEPENDENCIES
memory_profiler
minitest (~> 5.0)
pagy!
+ rack
rake (~> 10.0)
slim
diff --git a/lib/pagy/frontend.rb b/lib/pagy/frontend.rb
index 139ee03ae..0e43c5ddb 100644
--- a/lib/pagy/frontend.rb
+++ b/lib/pagy/frontend.rb
@@ -34,7 +34,7 @@ def pagy_info(pagy)
# this works with all Rack-based frameworks (Sinatra, Padrino, Rails, ...)
def pagy_url_for(n)
- url = File.join(request.script_name.to_s, request.path_info)
+ url = request.path
params = request.GET.merge('page'.freeze => n.to_s)
url << '?' << Rack::Utils.build_nested_query(pagy_get_params(params))
end
diff --git a/pagy.gemspec b/pagy.gemspec
index e02a7dc39..9ff487b4e 100644
--- a/pagy.gemspec
+++ b/pagy.gemspec
@@ -23,6 +23,7 @@ Gem::Specification.new do |s|
s.add_development_dependency 'bundler', '~> 1.16'
s.add_development_dependency 'rake', '~> 10.0'
s.add_development_dependency 'minitest', '~> 5.0'
+ s.add_development_dependency 'rack'
s.add_development_dependency 'slim'
s.add_development_dependency 'haml'
s.add_development_dependency 'benchmark-ips'
diff --git a/test/frontend_test.rb b/test/frontend_test.rb
new file mode 100644
index 000000000..3d4791e60
--- /dev/null
+++ b/test/frontend_test.rb
@@ -0,0 +1,72 @@
+require 'test_helper'
+require 'rack'
+
+class FrontendTest < Minitest::Test
+
+ class TestView
+ include Pagy::Frontend
+
+ def request
+ Rack::Request.new('SCRIPT_NAME' => '/foo')
+ end
+ end
+
+ def setup
+ @frontend = TestView.new
+ @array = (1..103).to_a.extend(Pagy::Array::PageMethod)
+ end
+
+ def test_pagy_nav_page_1
+ pagy, paged = @array.pagy(1)
+
+ assert_equal(
+ '',
+ @frontend.pagy_nav(pagy)
+ )
+ end
+
+ def test_pagy_nav_page_3
+ pagy, paged = @array.pagy(3)
+
+ assert_equal(
+ '',
+ @frontend.pagy_nav(pagy)
+ )
+ end
+
+ def test_pagy_nav_page_6
+ pagy, paged = @array.pagy(6)
+
+ assert_equal(
+ '',
+ @frontend.pagy_nav(pagy)
+ )
+ end
+end