diff --git a/app/assets/javascripts/darkswarm/services/credit_cards.js.coffee b/app/assets/javascripts/darkswarm/services/credit_cards.js.coffee index 4255b09d8f..9ca8c37b3d 100644 --- a/app/assets/javascripts/darkswarm/services/credit_cards.js.coffee +++ b/app/assets/javascripts/darkswarm/services/credit_cards.js.coffee @@ -5,17 +5,20 @@ Darkswarm.factory 'CreditCards', ($http, $filter, savedCreditCards, Messages, Cu add: (card) -> @saved.push card + setDefault: (card) => + card.is_default = true + for othercard in @saved when othercard != card + othercard.is_default = false + $http.put("/credit_cards/#{card.id}", is_default: true).then (data) -> + Messages.success(t('js.default_card_updated')) + for customer in Customers.index() + customer.allow_charges = false + , (response) -> + Messages.flash(response.data.flash) + confirmSetDefault: (card, event) => if confirm t("js.default_card_voids_auth") - card.is_default = true - for othercard in @saved when othercard != card - othercard.is_default = false - $http.put("/credit_cards/#{card.id}", is_default: true).then (data) -> - Messages.success(t('js.default_card_updated')) - for customer in Customers.index() - customer.allow_charges = false - , (response) -> - Messages.flash(response.data.flash) + @setDefault(card) else event.preventDefault() return false diff --git a/spec/features/consumer/account/cards_spec.rb b/spec/features/consumer/account/cards_spec.rb index 8b7f157a14..01d8dcea2d 100644 --- a/spec/features/consumer/account/cards_spec.rb +++ b/spec/features/consumer/account/cards_spec.rb @@ -53,6 +53,7 @@ feature "Credit Cards", js: true do # Allows switching of default card within(".card#card#{non_default_card.id}") do find_field('default_card').click + accept_alert expect(find_field('default_card')).to be_checked end diff --git a/spec/javascripts/unit/darkswarm/services/credit_cards_spec.js.coffee b/spec/javascripts/unit/darkswarm/services/credit_cards_spec.js.coffee index be3106f89c..6e614cffe6 100644 --- a/spec/javascripts/unit/darkswarm/services/credit_cards_spec.js.coffee +++ b/spec/javascripts/unit/darkswarm/services/credit_cards_spec.js.coffee @@ -36,6 +36,7 @@ describe 'CreditCards service', -> it "loads a success flash", -> CreditCards.setDefault(card2) + $httpBackend.expectGET('/api/customers.json').respond 200, [] $httpBackend.flush() expect(RailsFlashLoader.loadFlash).toHaveBeenCalledWith({success: t('js.default_card_updated')})