When add to cart fails, retry every 3 seconds, with no limit of the number of retries

This commit is contained in:
Rohan Mitchell
2015-07-15 15:40:59 +10:00
parent 7424e93133
commit 904a3a5bd4
2 changed files with 35 additions and 2 deletions

View File

@@ -3,6 +3,8 @@ describe 'Cart service', ->
Variants = null
variant = null
order = null
$httpBackend = null
$timeout = null
beforeEach ->
module 'Darkswarm'
@@ -16,9 +18,11 @@ describe 'Cart service', ->
]
}
angular.module('Darkswarm').value('currentOrder', order)
inject ($injector)->
inject ($injector, _$httpBackend_, _$timeout_)->
Variants = $injector.get("Variants")
Cart = $injector.get("Cart")
$httpBackend = _$httpBackend_
$timeout = _$timeout_
it "backreferences line items", ->
expect(Cart.line_items[0].variant.line_item).toBe Cart.line_items[0]
@@ -44,6 +48,29 @@ describe 'Cart service', ->
order.line_items[0].quantity = 2
expect(Cart.total_item_count()).toEqual 2
describe "updating the cart", ->
data = {variants: {}}
it "marks the form as saved on success", ->
spyOn(Cart, 'saved')
$httpBackend.expectPOST("/orders/populate", data).respond 200, {}
Cart.update()
$httpBackend.flush()
expect(Cart.saved).toHaveBeenCalled()
it "retries the update on failure", ->
spyOn(Cart, 'scheduleRetry')
$httpBackend.expectPOST("/orders/populate", data).respond 404, {}
Cart.update()
$httpBackend.flush()
expect(Cart.scheduleRetry).toHaveBeenCalled()
it "schedules retries of updates", ->
spyOn(Cart, 'orderChanged')
Cart.scheduleRetry()
$timeout.flush()
expect(Cart.orderChanged).toHaveBeenCalled()
describe "generating an extended variant name", ->
it "returns the product name when it is the same as the variant name", ->
variant = {product_name: 'product_name', name_to_display: 'product_name'}