Commit 2c1b5026184466b60b3ffe361adcde2ea0fe7ff5
1 parent
5e5b5f3a
Exists in
master
and in
28 other branches
Product edit category doesn't crash if product has no category
(ActionItem2007)
Showing
2 changed files
with
8 additions
and
1 deletions
Show diff stats
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 |