diff --git a/lib/resources/WebhookEndpoints.js b/lib/resources/WebhookEndpoints.js new file mode 100644 index 0000000000..149d4cd888 --- /dev/null +++ b/lib/resources/WebhookEndpoints.js @@ -0,0 +1,7 @@ +'use strict'; + +module.exports = require('../StripeResource').extend({ + path: 'webhook_endpoints', + includeBasic: ['create', 'list', 'update', 'retrieve', 'del'], +}); + diff --git a/lib/stripe.js b/lib/stripe.js index 454c970b16..678b2b1b22 100644 --- a/lib/stripe.js +++ b/lib/stripe.js @@ -69,6 +69,7 @@ var resources = { Transfers: require('./resources/Transfers'), UsageRecords: require('./resources/UsageRecords'), UsageRecordSummaries: require('./resources/UsageRecordSummaries'), + WebhookEndpoints: require('./resources/WebhookEndpoints'), // The following rely on pre-filled IDs: ApplicationFeeRefunds: require('./resources/ApplicationFeeRefunds'), diff --git a/test/resources/WebhookEndpoints.spec.js b/test/resources/WebhookEndpoints.spec.js new file mode 100644 index 0000000000..a2ac60b390 --- /dev/null +++ b/test/resources/WebhookEndpoints.spec.js @@ -0,0 +1,77 @@ +'use strict'; + +var stripe = require('../../testUtils').getSpyableStripe(); +var expect = require('chai').expect; + +describe('WebhookEndpoints Resource', function() { + describe('retrieve', function() { + it('Sends the correct request', function() { + stripe.webhookEndpoints.retrieve('we_123'); + expect(stripe.LAST_REQUEST).to.deep.equal({ + method: 'GET', + url: '/v1/webhook_endpoints/we_123', + headers: {}, + data: {}, + }); + }); + }); + + describe('del', function() { + it('Sends the correct request', function() { + stripe.webhookEndpoints.del('we_123'); + expect(stripe.LAST_REQUEST).to.deep.equal({ + method: 'DELETE', + url: '/v1/webhook_endpoints/we_123', + headers: {}, + data: {}, + }); + }); + }); + + describe('update', function() { + it('Sends the correct request', function() { + stripe.webhookEndpoints.update('we_123', { + enabled_events: ['charge.succeeded'], + }); + expect(stripe.LAST_REQUEST).to.deep.equal({ + method: 'POST', + url: '/v1/webhook_endpoints/we_123', + headers: {}, + data: { + enabled_events: ['charge.succeeded'], + }, + }); + }); + }); + + describe('create', function() { + it('Sends the correct request', function() { + stripe.webhookEndpoints.create({ + enabled_events: ['charge.succeeded'], + url: 'https://stripe.com', + }); + + expect(stripe.LAST_REQUEST).to.deep.equal({ + method: 'POST', + url: '/v1/webhook_endpoints', + headers: {}, + data: { + enabled_events: ['charge.succeeded'], + url: 'https://stripe.com', + }, + }); + }); + }); + + describe('list', function() { + it('Sends the correct request', function() { + stripe.webhookEndpoints.list(); + expect(stripe.LAST_REQUEST).to.deep.equal({ + method: 'GET', + url: '/v1/webhook_endpoints', + headers: {}, + data: {}, + }); + }); + }); +});