diff --git a/services/web/app/src/Features/Subscription/SubscriptionGroupHandler.js b/services/web/app/src/Features/Subscription/SubscriptionGroupHandler.js index 087e581c33..8e48a6faf4 100644 --- a/services/web/app/src/Features/Subscription/SubscriptionGroupHandler.js +++ b/services/web/app/src/Features/Subscription/SubscriptionGroupHandler.js @@ -6,6 +6,7 @@ const { Subscription } = require('../../models/Subscription') const SessionManager = require('../Authentication/SessionManager') const RecurlyClient = require('./RecurlyClient') const PlansLocator = require('./PlansLocator') +const SubscriptionHandler = require('./SubscriptionHandler') const PLAN_UPGRADE_MAP = { group_collaborator: 'group_professional', @@ -139,8 +140,13 @@ async function previewAddSeatsSubscriptionChange(req) { } async function createAddSeatsSubscriptionChange(req) { - const { changeRequest } = await _addSeatsSubscriptionChange(req) + const { changeRequest, userId, recurlySubscription } = + await _addSeatsSubscriptionChange(req) await RecurlyClient.promises.applySubscriptionChangeRequest(changeRequest) + await SubscriptionHandler.promises.syncSubscription( + { uuid: recurlySubscription.id }, + userId + ) return { adding: req.body.adding } } @@ -187,6 +193,10 @@ async function getGroupPlanUpgradePreview(ownerId) { async function upgradeGroupPlan(ownerId) { const changeRequest = await _getGroupPlanUpgradeChangeRequest(ownerId) await RecurlyClient.promises.applySubscriptionChangeRequest(changeRequest) + await SubscriptionHandler.promises.syncSubscription( + { uuid: changeRequest.subscription.id }, + ownerId + ) } module.exports = { diff --git a/services/web/test/unit/src/Subscription/SubscriptionGroupHandlerTests.js b/services/web/test/unit/src/Subscription/SubscriptionGroupHandlerTests.js index cafb371ea5..a28d053ca2 100644 --- a/services/web/test/unit/src/Subscription/SubscriptionGroupHandlerTests.js +++ b/services/web/test/unit/src/Subscription/SubscriptionGroupHandlerTests.js @@ -48,11 +48,18 @@ describe('SubscriptionGroupHandler', function () { promises: {}, } + this.SubscriptionHandler = { + promises: { + syncSubscription: sinon.stub().resolves(), + }, + } + this.Handler = SandboxedModule.require(modulePath, { requires: { './SubscriptionUpdater': this.SubscriptionUpdater, './SubscriptionLocator': this.SubscriptionLocator, './SubscriptionController': this.SubscriptionController, + './SubscriptionHandler': this.SubscriptionHandler, '../../models/Subscription': { Subscription: this.Subscription, },