diff --git a/app/assets/javascripts/darkswarm/services/stripe_elements.js.coffee b/app/assets/javascripts/darkswarm/services/stripe_elements.js.coffee index 256f6b1681..1b0db2dcc9 100644 --- a/app/assets/javascripts/darkswarm/services/stripe_elements.js.coffee +++ b/app/assets/javascripts/darkswarm/services/stripe_elements.js.coffee @@ -23,19 +23,20 @@ Darkswarm.factory 'StripeElements', ($rootScope, Loading, RailsFlashLoader) -> secrets.card = response.token.card submit() + # Maps the brand returned by Stripe to that required by activemerchant mapCC: (ccType) -> if ccType == 'MasterCard' - return 'mastercard' + return 'master' else if ccType == 'Visa' return 'visa' else if ccType == 'American Express' - return 'amex' + return 'american_express' else if ccType == 'Discover' return 'discover' - else if ccType == 'Diners Club' - return 'dinersclub' else if ccType == 'JCB' return 'jcb' + else if ccType == 'Diners Club' + return 'diners_club' return # It doesn't matter if any of these are nil, all are optional. diff --git a/spec/javascripts/unit/darkswarm/services/stripe_elements_spec.js.coffee b/spec/javascripts/unit/darkswarm/services/stripe_elements_spec.js.coffee index 1cf860ed3c..0252298f82 100644 --- a/spec/javascripts/unit/darkswarm/services/stripe_elements_spec.js.coffee +++ b/spec/javascripts/unit/darkswarm/services/stripe_elements_spec.js.coffee @@ -34,7 +34,7 @@ describe 'StripeElements Service', -> StripeElements.requestToken(secrets, submit) $rootScope.$digest() # required for #then to by called expect(secrets.token).toEqual "token" - expect(secrets.cc_type).toEqual "mastercard" + expect(secrets.cc_type).toEqual "master" expect(submit).toHaveBeenCalled() describe "with unsatifactory data", -> @@ -51,3 +51,12 @@ describe 'StripeElements Service', -> expect(submit).not.toHaveBeenCalled() expect(Loading.clear).toHaveBeenCalled() expect(RailsFlashLoader.loadFlash).toHaveBeenCalledWith({error: "Error: There was a problem"}) + + describe 'mapCC', -> + it "maps the brand returned by Stripe to that required by activemerchant", -> + expect(StripeElements.mapCC('MasterCard')).toEqual "master" + expect(StripeElements.mapCC('Visa')).toEqual "visa" + expect(StripeElements.mapCC('American Express')).toEqual "american_express" + expect(StripeElements.mapCC('Discover')).toEqual "discover" + expect(StripeElements.mapCC('JCB')).toEqual "jcb" + expect(StripeElements.mapCC('Diners Club')).toEqual "diners_club"