Refactoring how we change window.location

This commit is contained in:
Will Marshall
2014-04-25 12:13:50 +10:00
parent b7f28c8d82
commit dbf15c03d3
2 changed files with 5 additions and 6 deletions

View File

@@ -1,4 +1,4 @@
Darkswarm.factory 'Order', ($resource, Product, order, $http, CheckoutFormState, flash)->
Darkswarm.factory 'Order', ($resource, Product, order, $http, CheckoutFormState, flash, Navigation)->
new class Order
errors: {}
@@ -7,12 +7,9 @@ Darkswarm.factory 'Order', ($resource, Product, order, $http, CheckoutFormState,
# Default to first shipping method if none selected
@order.shipping_method_id ||= parseInt(Object.keys(@order.shipping_methods)[0])
navigate: (path)->
window.location.pathname = path
submit: ->
$http.put('/shop/checkout', {order: @preprocess()}).success (data, status)=>
@navigate(data.path)
Navigation.go data.path
.error (response, status)=>
@errors = response.errors
flash.error = response.flash?.error

View File

@@ -3,6 +3,7 @@ describe 'Order service', ->
orderData = null
$httpBackend = null
CheckoutFormState = null
Navigation = null
flash = null
beforeEach ->
@@ -28,9 +29,10 @@ describe 'Order service', ->
inject ($injector, _$httpBackend_)->
$httpBackend = _$httpBackend_
Order = $injector.get("Order")
Navigation = $injector.get("Navigation")
flash = $injector.get("flash")
CheckoutFormState = $injector.get("CheckoutFormState")
spyOn(Order, "navigate") # Stubbing out writes to window.location
spyOn(Navigation, "go") # Stubbing out writes to window.location
it "defaults the shipping method to the first", ->
expect(Order.order.shipping_method_id).toEqual 7