Commit 2c1b5026184466b60b3ffe361adcde2ea0fe7ff5

Authored by Rodrigo Souto
1 parent 5e5b5f3a

Product edit category doesn't crash if product has no category

(ActionItem2007)
app/controllers/my_profile/manage_products_controller.rb
@@ -72,7 +72,7 @@ class ManageProductsController < ApplicationController @@ -72,7 +72,7 @@ class ManageProductsController < ApplicationController
72 72
73 def edit_category 73 def edit_category
74 @product = @profile.products.find(params[:id]) 74 @product = @profile.products.find(params[:id])
75 - @category = @product.product_category 75 + @category = @product.product_category || ProductCategory.first
76 @categories = ProductCategory.top_level_for(environment) 76 @categories = ProductCategory.top_level_for(environment)
77 @edit = true 77 @edit = true
78 @level = @category.level 78 @level = @category.level
test/functional/manage_products_controller_test.rb
@@ -123,6 +123,13 @@ class ManageProductsControllerTest < Test::Unit::TestCase @@ -123,6 +123,13 @@ class ManageProductsControllerTest < Test::Unit::TestCase
123 assert_template 'shared/_dialog_error_messages' 123 assert_template 'shared/_dialog_error_messages'
124 end 124 end
125 125
  126 + should "not crash if product has no category" do
  127 + product = fast_create(Product, :enterprise_id => @enterprise.id)
  128 + assert_nothing_raised do
  129 + post 'edit_category', :profile => @enterprise.identifier, :id => product.id
  130 + end
  131 + end
  132 +
126 should "destroy product" do 133 should "destroy product" do
127 product = fast_create(Product, :name => 'test product', :enterprise_id => @enterprise.id, :product_category_id => @product_category.id) 134 product = fast_create(Product, :name => 'test product', :enterprise_id => @enterprise.id, :product_category_id => @product_category.id)
128 assert_difference Product, :count, -1 do 135 assert_difference Product, :count, -1 do