spec/paginate/action_view_spec.rb in paginate-2.0.0 vs spec/paginate/action_view_spec.rb in paginate-3.0.0
- old
+ new
@@ -13,11 +13,11 @@
File.expand_path("../../support/views", __FILE__)
)
@view.lookup_context.prefixes << "application"
@view.controller = @controller
@view.extend(Paginate::Helper)
- @view.stub :request => @request
+ @view.stub request: @request
@helper = Object.new
@helper.extend(Paginate::Helper)
Paginate.configure do |config|
@@ -26,147 +26,22 @@
end
I18n.locale = :en
end
- it "displays pagination list" do
- @request.fullpath = "/some/path?page=1"
- html = render(:default, [])
-
- expect(html.css("ul.paginate").count).to eql(1)
- expect(html.css("ul.paginate > li").count).to eql(3)
- end
-
- it "adds .disabled class when have no items" do
- @request.fullpath = "/some/path"
- html = render(:default, [])
-
- expect(html.css("ul.paginate.disabled").first).to be
- end
-
- it "displays next page link" do
- @request.fullpath = "/some/path?page=1"
- html = render(:default, Array.new(11))
- link = html.css("li.next-page > a").first
-
- expect(link).to be
- expect(link["href"]).to eql("/some/path?page=2")
- expect(link.text).to eql("Next page")
- end
-
- it "displays next page link using proc as url" do
- @request.fullpath = "/some/path?page=1"
- html = render(:block_as_url, Array.new(11))
- link = html.css("li.next-page > a").first
-
- expect(link).to be
- expect(link["href"]).to eql("/some/path/2")
- expect(link.text).to eql("Next page")
- end
-
- it "displays previous page link" do
- @params[:page] = 2
- @request.fullpath = "/some/path?page=2"
- html = render(:default, Array.new(11))
- link = html.css("li.previous-page > a").first
-
- expect(link).to be
- expect(link["href"]).to eql("/some/path?page=1")
- expect(link.text).to eql("Previous page")
- end
-
- it "disables element when have no next page" do
- @request.fullpath = "/some/path?page=1"
- html = render(:default, Array.new(10))
- link = html.css("li.next-page > a").first
- span = html.css("li.next-page.disabled > span").first
-
- expect(link).not_to be
- expect(span).to be
- expect(span.text).to eql("Next page")
- end
-
- it "disables element when have no previous page" do
- @request.fullpath = "/some/path?page=1"
- html = render(:default, Array.new(10))
- link = html.css("li.previous-page > a").first
- span = html.css("li.previous-page.disabled > span").first
-
- expect(link).not_to be
- expect(span).to be
- expect(span.text).to eql("Previous page")
- end
-
- it "displays current page" do
- @params[:page] = 10
- @request.fullpath = "/some/path?page=10"
- html = render(:default, [])
- span = html.css("li.page > span").first
-
- expect(span).to be
- expect(span.text).to eql("Page 10")
- end
-
it "overrides render method" do
items = [*1..11].map do |i|
OpenStruct.new(:to_partial_path => "number", :value => i)
end
html = render(:render, items)
end
- it "translates strings" do
- I18n.locale = :"pt-BR"
-
- @params[:page] = 10
- @request.fullpath = "/some/path?page=10"
- html = render(:default, Array.new(11))
-
- expect(html.css("li.page > span").text).to eql("Página 10")
- expect(html.css("li.next-page > a").text).to eql("Próxima página")
- expect(html.css("li.previous-page > a").text).to eql("Página anterior")
- end
-
- it "skips the last item while iterating" do
- values = []
- items = Array.new(11) {|i| "User#{i}" }
-
- @helper.iterate items do |item|
- values << item
- end
-
- expect(values).to eql(items[0, 10])
- end
-
- it "iterates all items when have less records than size" do
- values = []
- items = Array.new(8) {|i| "User#{i}" }
-
- @helper.iterate items do |item|
- values << item
- end
-
- expect(values).to eql(items[0, 8])
- end
-
- it "yields iteration counter" do
- values = []
- indices = []
- items = Array.new(11) {|i| "User#{i}" }
-
- @helper.iterate items do |item, i|
- values << item
- indices << i
- end
-
- expect(values).to eql(items[0, 10])
- expect(indices).to eql([*0...10])
- end
-
private
def render(view_name, items)
+ @controller.params = @params
view_info = Struct.new(:to_partial_path).new("#{view_name}")
- Nokogiri @view.render(view_info, :items => items)
+ Nokogiri @view.render(view_info, items: items)
end
def load_view(name)
File.read(File.dirname(__FILE__) + "/../support/views/#{name}.erb")
end