Do not delete variant options_text when saving/refreshing products

This commit is contained in:
Rohan Mitchell
2014-01-14 11:40:58 +11:00
parent 9442b7b5dc
commit a30e46d747
2 changed files with 33 additions and 4 deletions

View File

@@ -315,7 +315,7 @@ productsApp.controller "AdminBulkProductsCtrl", [
$scope.productsWithoutDerivedAttributes = (products) ->
products_filtered = []
if products
products_filtered.push angular.extend {}, product for product in products
products_filtered = $scope.deepCopyProducts products
for product in products_filtered
delete product.variant_unit_with_scale
if product.variants
@@ -326,6 +326,14 @@ productsApp.controller "AdminBulkProductsCtrl", [
products_filtered
$scope.deepCopyProducts = (products) ->
copied_products = (angular.extend {}, product for product in products)
for product in copied_products
if product.variants
product.variants = (angular.extend {}, variant for variant in product.variants)
copied_products
$scope.findProduct = (id) ->
products = (product for product in $scope.products when product.id == id)
if products.length == 0 then null else products[0]

View File

@@ -707,9 +707,17 @@ describe "AdminBulkProductsCtrl", ->
expect(scope.productsWithoutDerivedAttributes(scope.products)).toEqual([])
it "does not alter original products", ->
scope.products = [{id: 123, variant_unit_with_scale: 'weight_1000'}]
scope.productsWithoutDerivedAttributes()
expect(scope.products).toEqual [{id: 123, variant_unit_with_scale: 'weight_1000'}]
scope.products = [{
id: 123
variant_unit_with_scale: 'weight_1000'
variants: [{options_text: 'foo'}]
}]
scope.productsWithoutDerivedAttributes(scope.products)
expect(scope.products).toEqual [{
id: 123
variant_unit_with_scale: 'weight_1000'
variants: [{options_text: 'foo'}]
}]
describe "updating variants", ->
it "returns variants without the unit_value_with_description field", ->
@@ -722,6 +730,19 @@ describe "AdminBulkProductsCtrl", ->
]
describe "deep copying products", ->
it "copies products", ->
product = {id: 123}
copiedProducts = scope.deepCopyProducts [product]
expect(copiedProducts[0]).not.toBe(product)
it "copies variants", ->
variant = {id: 1}
product = {id: 123, variants: [variant]}
copiedProducts = scope.deepCopyProducts [product]
expect(copiedProducts[0].variants[0]).not.toBe(variant)
describe "fetching a product by id", ->
it "returns the product when it is present", ->
product = {id: 123}