From b9c31da2c1f2f1a7ae9aaf2bc954b4e9d395563b Mon Sep 17 00:00:00 2001 From: Remi Jannel Date: Wed, 19 Dec 2018 14:26:00 +0100 Subject: [PATCH] Add support for the Checkout Session resource --- lib/resources/CheckoutSessions.js | 7 +++ lib/stripe.js | 1 + test/resources/CheckoutSessions.spec.js | 59 +++++++++++++++++++++++++ 3 files changed, 67 insertions(+) create mode 100644 lib/resources/CheckoutSessions.js create mode 100644 test/resources/CheckoutSessions.spec.js diff --git a/lib/resources/CheckoutSessions.js b/lib/resources/CheckoutSessions.js new file mode 100644 index 0000000000..095fda91a8 --- /dev/null +++ b/lib/resources/CheckoutSessions.js @@ -0,0 +1,7 @@ +'use strict'; + +module.exports = require('../StripeResource').extend({ + path: 'checkout_sessions', + includeBasic: ['create'], +}); + diff --git a/lib/stripe.js b/lib/stripe.js index 70d8eae50a..26259fe3dd 100644 --- a/lib/stripe.js +++ b/lib/stripe.js @@ -38,6 +38,7 @@ var resources = { Balance: require('./resources/Balance'), BitcoinReceivers: require('./resources/BitcoinReceivers'), Charges: require('./resources/Charges'), + CheckoutSessions: require('./resources/CheckoutSessions'), CountrySpecs: require('./resources/CountrySpecs'), Coupons: require('./resources/Coupons'), Customers: require('./resources/Customers'), diff --git a/test/resources/CheckoutSessions.spec.js b/test/resources/CheckoutSessions.spec.js new file mode 100644 index 0000000000..f5a6ad28be --- /dev/null +++ b/test/resources/CheckoutSessions.spec.js @@ -0,0 +1,59 @@ +'use strict'; + +var stripe = require('../../testUtils').getSpyableStripe(); +var expect = require('chai').expect; + +describe('CheckoutSessions Resource', function() { + describe('create', function() { + it('Sends the correct request', function() { + stripe.checkoutSessions.create({ + allowed_source_types: ['card'], + cancel_url: 'https://stripe.com/cancel', + client_reference_id: '1234', + line_items: [ + { + amount: 123, + currency: 'usd', + description: 'item 1', + images: [ + 'https://stripe.com/img1', + ], + name: 'name', + quantity: 2, + }, + ], + payment_intent_data: { + receipt_email: 'test@stripe.com', + }, + success_url: 'https://stripe.com/success', + }); + + expect(stripe.LAST_REQUEST).to.deep.equal({ + method: 'POST', + url: '/v1/checkout_sessions', + headers: {}, + data: { + allowed_source_types: ['card'], + cancel_url: 'https://stripe.com/cancel', + client_reference_id: '1234', + line_items: [ + { + amount: 123, + currency: 'usd', + description: 'item 1', + images: [ + 'https://stripe.com/img1', + ], + name: 'name', + quantity: 2, + }, + ], + payment_intent_data: { + receipt_email: 'test@stripe.com', + }, + success_url: 'https://stripe.com/success', + }, + }); + }); + }); +});