diff --git a/ghost/members-api/lib/MembersAPI.js b/ghost/members-api/lib/MembersAPI.js index 320e392184..40f310a0e4 100644 --- a/ghost/members-api/lib/MembersAPI.js +++ b/ghost/members-api/lib/MembersAPI.js @@ -3,7 +3,7 @@ const body = require('body-parser'); const MagicLink = require('@tryghost/magic-link'); const common = require('./common'); -const StripeAPIService = require('@tryghost/stripe-service'); +const StripeAPIService = require('@tryghost/members-stripe-service'); const MemberAnalyticsService = require('@tryghost/member-analytics-service'); const MembersAnalyticsIngress = require('@tryghost/members-analytics-ingress'); diff --git a/ghost/members-api/lib/controllers/router.js b/ghost/members-api/lib/controllers/router.js index 850921e8d9..a6e2730b07 100644 --- a/ghost/members-api/lib/controllers/router.js +++ b/ghost/members-api/lib/controllers/router.js @@ -10,7 +10,7 @@ const errors = require('@tryghost/ignition-errors'); * @param {any} deps.StripePrice * @param {boolean} deps.allowSelfSignup * @param {any} deps.magicLinkService - * @param {import('@tryghost/stripe-service')} deps.stripeAPIService + * @param {import('@tryghost/members-stripe-service')} deps.stripeAPIService * @param {any} deps.tokenService * @param {any} deps.config * @param {any} deps.logging diff --git a/ghost/members-api/package.json b/ghost/members-api/package.json index 572f89edb4..a5820cde35 100644 --- a/ghost/members-api/package.json +++ b/ghost/members-api/package.json @@ -32,7 +32,7 @@ "@tryghost/magic-link": "^1.0.12", "@tryghost/member-analytics-service": "^0.1.1", "@tryghost/members-analytics-ingress": "^0.1.2", - "@tryghost/stripe-service": "^0.1.0", + "@tryghost/members-stripe-service": "^0.1.0", "@tryghost/tpl": "^0.1.2", "@types/jsonwebtoken": "^8.5.1", "bluebird": "^3.5.4", diff --git a/ghost/members-api/test/unit/lib/services/stripe-webhook.test.js b/ghost/members-api/test/unit/lib/services/stripe-webhook.test.js index c3e3885156..a2afa9539d 100644 --- a/ghost/members-api/test/unit/lib/services/stripe-webhook.test.js +++ b/ghost/members-api/test/unit/lib/services/stripe-webhook.test.js @@ -1,45 +1,45 @@ -// const {describe, it} = require('mocha'); -// const should = require('should'); -// const sinon = require('sinon'); -// const StripeAPIService = require('@tryghost/stripe-service'); -// const StripeWebhookService = require('../../../../lib/services/stripe-webhook'); -// const ProductRepository = require('../../../../lib/repositories/product'); -// const MemberRepository = require('../../../../lib/repositories/member'); +const {describe, it} = require('mocha'); +const should = require('should'); +const sinon = require('sinon'); +const StripeAPIService = require('@tryghost/members-stripe-service'); +const StripeWebhookService = require('../../../../lib/services/stripe-webhook'); +const ProductRepository = require('../../../../lib/repositories/product'); +const MemberRepository = require('../../../../lib/repositories/member'); -// function mock(Class) { -// return sinon.stub(Object.create(Class.prototype)); -// } +function mock(Class) { + return sinon.stub(Object.create(Class.prototype)); +} -// describe('StripeWebhookService', function () { -// describe('invoice.payment_succeeded webhooks', function () { -// it('Should throw a 404 error when a member is not found for a valid Ghost Members invoice', async function () { -// const stripeWebhookService = new StripeWebhookService({ -// stripeAPIService: mock(StripeAPIService), -// productRepository: mock(ProductRepository), -// memberRepository: mock(MemberRepository) -// }); +describe('StripeWebhookService', function () { + describe('invoice.payment_succeeded webhooks', function () { + it('Should throw a 404 error when a member is not found for a valid Ghost Members invoice', async function () { + const stripeWebhookService = new StripeWebhookService({ + stripeAPIService: mock(StripeAPIService), + productRepository: mock(ProductRepository), + memberRepository: mock(MemberRepository) + }); -// stripeWebhookService._stripeAPIService.getSubscription.resolves({ -// customer: 'customer_id', -// plan: { -// product: 'product_id' -// } -// }); + stripeWebhookService._stripeAPIService.getSubscription.resolves({ + customer: 'customer_id', + plan: { + product: 'product_id' + } + }); -// stripeWebhookService._memberRepository.get.resolves(null); + stripeWebhookService._memberRepository.get.resolves(null); -// stripeWebhookService._productRepository.get.resolves({ -// id: 'product_id' -// }); + stripeWebhookService._productRepository.get.resolves({ + id: 'product_id' + }); -// try { -// await stripeWebhookService.invoiceEvent({ -// subscription: 'sub_id' -// }); -// should.fail(); -// } catch (err) { -// should.equal(err.statusCode, 404); -// } -// }); -// }); -// }); + try { + await stripeWebhookService.invoiceEvent({ + subscription: 'sub_id' + }); + should.fail(); + } catch (err) { + should.equal(err.statusCode, 404); + } + }); + }); +});