When order cycle is changed, clear the cart

This commit is contained in:
Rohan Mitchell
2015-07-29 14:36:52 +10:00
parent bf2bd403a4
commit 09b4b3e659
3 changed files with 16 additions and 4 deletions

View File

@@ -1,5 +1,3 @@
# TODO this SUCKS. Fix it
Darkswarm.controller "OrderCycleCtrl", ($scope, $timeout, OrderCycle) ->
$scope.order_cycle = OrderCycle.order_cycle
$scope.OrderCycle = OrderCycle
@@ -12,12 +10,15 @@ Darkswarm.controller "OrderCycleCtrl", ($scope, $timeout, OrderCycle) ->
$("#order_cycle_id").trigger("openTrigger")
Darkswarm.controller "OrderCycleChangeCtrl", ($scope, $timeout, OrderCycle, Products, Variants) ->
Darkswarm.controller "OrderCycleChangeCtrl", ($scope, $timeout, OrderCycle, Products, Variants, Cart) ->
$scope.changeOrderCycle = ->
OrderCycle.push_order_cycle $scope.orderCycleChanged
$timeout ->
$("#order_cycle_id").trigger("closeTrigger")
$scope.orderCycleChanged = ->
# push_order_cycle clears the cart server-side. Here we call Cart.clear() to clear the
# client-side cart.
Variants.clear()
Cart.clear()
Products.update()

View File

@@ -19,7 +19,6 @@ Darkswarm.factory 'Products', ($resource, Enterprises, Dereferencer, Taxons, Pro
@registerVariants()
@registerVariantsWithCart()
@loading = false
@
extend: ->
for product in @products

View File

@@ -96,9 +96,21 @@ feature "As a consumer I want to shop with a distributor", js: true do
select "turtles", from: "order_cycle_id"
page.should have_content "$1020.99"
# -- Cart shows correct price
fill_in "variants[#{variant.id}]", with: 1
show_cart
within("li.cart") { page.should have_content "$1020.99" }
# -- Changing order cycle
select "frogs", from: "order_cycle_id"
page.should have_content "$19.99"
# -- Cart should be cleared
# ng-animate means that the old product row is likely to be present, so we explicitly
# fill in the quantity in the incoming row
page.should_not have_selector "tr.product-cart"
within('product.ng-enter') { fill_in "variants[#{variant.id}]", with: 1 }
within("li.cart") { page.should have_content "$19.99" }
end
end
end