From e194de50cf1e6e3952c54af81955a4ac59ad877c Mon Sep 17 00:00:00 2001 From: Shane Kilkelly Date: Tue, 28 Jun 2016 10:17:06 +0100 Subject: [PATCH] test `_paypal.checAccountExists`. --- .../Subscription/RecurlyWrapperTests.coffee | 100 ++++++++++++++++++ 1 file changed, 100 insertions(+) diff --git a/services/web/test/UnitTests/coffee/Subscription/RecurlyWrapperTests.coffee b/services/web/test/UnitTests/coffee/Subscription/RecurlyWrapperTests.coffee index d7099f255c..4ab866b408 100644 --- a/services/web/test/UnitTests/coffee/Subscription/RecurlyWrapperTests.coffee +++ b/services/web/test/UnitTests/coffee/Subscription/RecurlyWrapperTests.coffee @@ -655,3 +655,103 @@ describe "RecurlyWrapper", -> @setAddress.callCount.should.equal 0 @createSubscription.callCount.should.equal 0 done() + + describe '_paypal.checkAccountExists', -> + + beforeEach -> + @apiRequest = sinon.stub(@RecurlyWrapper, 'apiRequest') + @_parseAccountXml = sinon.spy(@RecurlyWrapper, '_parseAccountXml') + @cache = + user: @user = {_id: 'some_id'} + recurly_token_id: @recurly_token_id = "some_token" + subscriptionDetails: @subscriptionDetails = + currencyCode: "EUR" + plan_code: "some_plan_code" + coupon_code: "" + isPaypal: true + address: + address1: "addr_one" + address2: "addr_two" + country: "some_country" + state: "some_state" + zip: "some_zip" + @call = (callback) => + @RecurlyWrapper._paypal.checkAccountExists @cache, callback + + afterEach -> + @apiRequest.restore() + @_parseAccountXml.restore() + + describe 'when the account exists', -> + + beforeEach -> + resultXml = 'abc' + @apiRequest.callsArgWith(1, null, {statusCode: 200}, resultXml) + + it 'should not produce an error', (done) -> + @call (err, result) => + expect(err).to.not.be.instanceof Error + done() + + it 'should call apiRequest', (done) -> + @call (err, result) => + @apiRequest.callCount.should.equal 1 + done() + + it 'should call _parseAccountXml', (done) -> + @call (err, result) => + @RecurlyWrapper._parseAccountXml.callCount.should.equal 1 + done() + + it 'should add the account to the cumulative result', (done) -> + @call (err, result) => + expect(result.account).to.not.equal null + expect(result.account).to.not.equal undefined + expect(result.account).to.deep.equal { + account_code: 'abc' + } + done() + + describe 'when the account does not exist', -> + + beforeEach -> + @apiRequest.callsArgWith(1, new Error('not found'), {statusCode: 404}, '') + + it 'should not produce an error', (done) -> + @call (err, result) => + expect(err).to.not.be.instanceof Error + done() + + it 'should call apiRequest', (done) -> + @call (err, result) => + @apiRequest.callCount.should.equal 1 + done() + + it 'should not call _parseAccountXml', (done) -> + @call (err, result) => + @RecurlyWrapper._parseAccountXml.callCount.should.equal 0 + done() + + it 'should not add the account to result', (done) -> + @call (err, result) => + expect(result.account).to.equal undefined + done() + + # describe '_paypal.createAccount', -> + + # beforeEach -> + + + # describe '_paypal.createBillingInfo', -> + + # beforeEach -> + + + # describe '_paypal.setAddress', -> + + # beforeEach -> + + + # describe '_paypal.createSubscription', -> + + # beforeEach ->