diff --git a/app/models/category_finder.rb b/app/models/category_finder.rb index 8b4e929..981e1f3 100644 --- a/app/models/category_finder.rb +++ b/app/models/category_finder.rb @@ -19,7 +19,7 @@ class CategoryFinder options = {:page => 1, :per_page => options.delete(:limit)}.merge(options) if query.blank? - asset_class(asset).paginate(:all, options_for_find(asset_class(asset), {:order => "created_at desc, #{asset_table(asset)}.id desc"}.merge(options), date_range)) + asset_class(asset).paginate(:all, options_for_find(asset_class(asset), {:order => "#{asset_table(asset)}.name"}.merge(options), date_range)) else ferret_options = {:page => options.delete(:page), :per_page => options.delete(:per_page)} asset_class(asset).find_by_contents(query, ferret_options, options_for_find(asset_class(asset), options, date_range)) diff --git a/app/models/environment_finder.rb b/app/models/environment_finder.rb index 8f009a5..90016f6 100644 --- a/app/models/environment_finder.rb +++ b/app/models/environment_finder.rb @@ -21,11 +21,11 @@ class EnvironmentFinder end if query.blank? - options = {:order => "#{asset_table(asset)}.created_at desc, #{asset_table(asset)}.id desc"}.merge(options) + options = {:order => "#{asset_table(asset)}.name"}.merge(options) if product_category && asset == :products @environment.send(asset).send(finder_method, :all, options.merge(:include => 'product_categorizations', :conditions => ['product_categorizations.category_id = (?)', product_category.id])) elsif product_category && asset == :enterprises - @environment.send(asset).send(finder_method, :all, options.merge(:order => 'profiles.created_at desc, profiles.id desc', :include => 'products', :joins => 'inner join product_categorizations on (product_categorizations.product_id = products.id)', :conditions => ['product_categorizations.category_id = (?)', product_category.id])) + @environment.send(asset).send(finder_method, :all, options.merge(:order => 'profiles.name', :include => 'products', :joins => 'inner join product_categorizations on (product_categorizations.product_id = products.id)', :conditions => ['product_categorizations.category_id = (?)', product_category.id])) else if (asset == :events) && date_range @environment.send(asset).send(finder_method, :all, options.merge(:conditions => { :start_date => date_range})) diff --git a/test/functional/search_controller_test.rb b/test/functional/search_controller_test.rb index 5911c13..6a11cc6 100644 --- a/test/functional/search_controller_test.rb +++ b/test/functional/search_controller_test.rb @@ -233,7 +233,7 @@ class SearchControllerTest < Test::Unit::TestCase get :assets, :asset => 'communities', :category_path => [ 'my-category' ] - assert_equal [c3, c1], assigns(:results)[:communities] + assert_equivalent [c3, c1], assigns(:results)[:communities] end should 'find products' do @@ -290,7 +290,7 @@ class SearchControllerTest < Test::Unit::TestCase get :assets, :asset => 'enterprises', :page => '2' - assert_equal [ent1], assigns(:results)[:enterprises] # older on page 2 + assert_equal 1, assigns(:results)[:enterprises].size end should 'display search results' do diff --git a/test/unit/category_finder_test.rb b/test/unit/category_finder_test.rb index b90cee0..946338a 100644 --- a/test/unit/category_finder_test.rb +++ b/test/unit/category_finder_test.rb @@ -124,17 +124,21 @@ class CategoryFinderTest < ActiveSupport::TestCase should 'not list more enterprises than limit' do ent1 = Enterprise.create!(:name => 'teste1', :identifier => 'teste1', :category_ids => [@category.id]) ent2 = Enterprise.create!(:name => 'teste2', :identifier => 'teste2', :category_ids => [@category.id]) - recent = @finder.recent('enterprises', 1) - assert_includes recent, ent2 - assert_not_includes recent, ent1 + result = @finder.recent('enterprises', 1) + + assert_equal 1, result.size end should 'paginate the list of more enterprises than limit' do ent1 = Enterprise.create!(:name => 'teste1', :identifier => 'teste1', :category_ids => [@category.id]) ent2 = Enterprise.create!(:name => 'teste2', :identifier => 'teste2', :category_ids => [@category.id]) - assert_equal [ent2], @finder.find('enterprises', nil, :per_page => 1, :page => 1) - assert_equal [ent1], @finder.find('enterprises', nil, :per_page => 1, :page => 2) + page_1 = @finder.find('enterprises', nil, :per_page => 1, :page => 1) + page_2 = @finder.find('enterprises', nil, :per_page => 1, :page => 2) + + assert_equal 1, page_1.size + assert_equal 1, page_2.size + assert_equivalent [ent1, ent2], page_1 + page_2 end should 'paginate the list of more enterprises than limit with query' do @@ -152,9 +156,9 @@ class CategoryFinderTest < ActiveSupport::TestCase should 'not list more people than limit' do p1 = create_user('test1').person; p1.add_category(@category) p2 = create_user('test2').person; p2.add_category(@category) - recent = @finder.recent('people', 1) - assert_includes recent, p2 - assert_not_includes recent, p1 + result = @finder.recent('people', 1) + + assert_equal 1, result.size end should 'list recent articles' do @@ -164,8 +168,8 @@ class CategoryFinderTest < ActiveSupport::TestCase art2 = person.articles.build(:name => 'another article to be found'); art2.add_category(@category); art2.save! result = @finder.recent('articles', 1) - assert_includes result, art2 - assert_not_includes result, art1 + + assert_equal 1, result.size end should 'not return the same result twice' do @@ -431,5 +435,16 @@ class CategoryFinderTest < ActiveSupport::TestCase assert_equal 2, counts[pc2.id] assert_nil counts[pc3.id] end + + should 'find enterprises in alphabetical order of name' do + ent1 = Enterprise.create!(:name => 'test enterprise B', :identifier => 'test_ent_b', :category_ids => [@category.id]) + ent2 = Enterprise.create!(:name => 'test enterprise A', :identifier => 'test_ent_a', :category_ids => [@category.id]) + ent3 = Enterprise.create!(:name => 'test enterprise C', :identifier => 'test_ent_c', :category_ids => [@category.id]) + + ents = @finder.find(:enterprises, nil) + + assert ents.index(ent2) < ents.index(ent1), "expected #{ents.index(ent2)} be smaller than #{ents.index(ent1)}" + assert ents.index(ent1) < ents.index(ent3), "expected #{ents.index(ent1)} be smaller than #{ents.index(ent3)}" + end end diff --git a/test/unit/environment_finder_test.rb b/test/unit/environment_finder_test.rb index 688e37b..a8f37a5 100644 --- a/test/unit/environment_finder_test.rb +++ b/test/unit/environment_finder_test.rb @@ -141,14 +141,17 @@ class EnvironmentFinderTest < ActiveSupport::TestCase assert_not_includes prods, prod4 end - should 'find in order of creation' do + should 'find enterprises in alphabetical order of name' do finder = EnvironmentFinder.new(Environment.default) - ent1 = Enterprise.create!(:name => 'test enterprise 1', :identifier => 'test_ent1') - ent2 = Enterprise.create!(:name => 'test enterprise 2', :identifier => 'test_ent2') + + ent1 = Enterprise.create!(:name => 'test enterprise B', :identifier => 'test_ent_b') + ent2 = Enterprise.create!(:name => 'test enterprise A', :identifier => 'test_ent_a') + ent3 = Enterprise.create!(:name => 'test enterprise C', :identifier => 'test_ent_c') ents = finder.find(:enterprises, nil) assert ents.index(ent2) < ents.index(ent1), "expected #{ents.index(ent2)} be smaller than #{ents.index(ent1)}" + assert ents.index(ent1) < ents.index(ent3), "expected #{ents.index(ent1)} be smaller than #{ents.index(ent3)}" end should 'find enterprises by its products categories' do -- libgit2 0.21.2