FIX: categories page counts were very wrong for categories with sub-categories
This commit is contained in:
parent
eaa1afeaf5
commit
b9c7e3b74a
|
@ -74,7 +74,7 @@ class CategoryDetailedSerializer < BasicCategorySerializer
|
|||
def count_with_subcategories(method)
|
||||
count = object.send(method) || 0
|
||||
object.subcategories.each do |category|
|
||||
count += (object.send(method) || 0)
|
||||
count += (category.send(method) || 0)
|
||||
end
|
||||
count
|
||||
end
|
||||
|
|
|
@ -0,0 +1,31 @@
|
|||
require 'spec_helper'
|
||||
require_dependency 'category'
|
||||
|
||||
describe CategoryDetailedSerializer do
|
||||
|
||||
describe "counts" do
|
||||
it "works for categories with no subcategories" do
|
||||
no_subcats = Fabricate(:category, topics_year: 10, topics_month: 5, topics_day: 2, posts_year: 13, posts_month: 7, posts_day: 3)
|
||||
json = CategoryDetailedSerializer.new(no_subcats, scope: Guardian.new, root: false).as_json
|
||||
json[:topics_year].should == 10
|
||||
json[:topics_month].should == 5
|
||||
json[:topics_day].should == 2
|
||||
json[:posts_year].should == 13
|
||||
json[:posts_month].should == 7
|
||||
json[:posts_day].should == 3
|
||||
end
|
||||
|
||||
it "includes counts from subcategories" do
|
||||
parent = Fabricate(:category, topics_year: 10, topics_month: 5, topics_day: 2, posts_year: 13, posts_month: 7, posts_day: 3)
|
||||
subcategory = Fabricate(:category, parent_category_id: parent.id, topics_year: 1, topics_month: 1, topics_day: 1, posts_year: 1, posts_month: 1, posts_day: 1)
|
||||
json = CategoryDetailedSerializer.new(parent, scope: Guardian.new, root: false).as_json
|
||||
json[:topics_year].should == 11
|
||||
json[:topics_month].should == 6
|
||||
json[:topics_day].should == 3
|
||||
json[:posts_year].should == 14
|
||||
json[:posts_month].should == 8
|
||||
json[:posts_day].should == 4
|
||||
end
|
||||
end
|
||||
|
||||
end
|
Loading…
Reference in New Issue