From 0cfcdf5e4d47f46b5faeaafcbc1d8ad2b41accaf Mon Sep 17 00:00:00 2001 From: Jessica Lawshe <5312836+lawshe@users.noreply.github.com> Date: Thu, 11 Apr 2024 08:26:40 -0500 Subject: [PATCH] Merge pull request #17822 from overleaf/jel-dash-usersBestSubscription [web] Limit data sent to dash for best subscription when group GitOrigin-RevId: d52101bec69cbb7931e9702e085b4aeb65d9d603 --- .../SubscriptionViewModelBuilder.js | 6 ++++- .../SubscriptionViewModelBuilderTests.js | 24 ++++++++++++++++--- 2 files changed, 26 insertions(+), 4 deletions(-) diff --git a/services/web/app/src/Features/Subscription/SubscriptionViewModelBuilder.js b/services/web/app/src/Features/Subscription/SubscriptionViewModelBuilder.js index e35b21abd5..081d4072c8 100644 --- a/services/web/app/src/Features/Subscription/SubscriptionViewModelBuilder.js +++ b/services/web/app/src/Features/Subscription/SubscriptionViewModelBuilder.js @@ -404,10 +404,14 @@ async function getBestSubscription(user) { groupSubscription.planCode ) if (_isPlanEqualOrBetter(plan, bestSubscription.plan)) { + const groupDataForView = {} + if (groupSubscription.teamName) { + groupDataForView.teamName = groupSubscription.teamName + } const remainingTrialDays = _getRemainingTrialDays(groupSubscription) bestSubscription = { type: 'group', - subscription: groupSubscription, + subscription: groupDataForView, plan, remainingTrialDays, } diff --git a/services/web/test/unit/src/Subscription/SubscriptionViewModelBuilderTests.js b/services/web/test/unit/src/Subscription/SubscriptionViewModelBuilderTests.js index 730eb3c850..c1075f1a60 100644 --- a/services/web/test/unit/src/Subscription/SubscriptionViewModelBuilderTests.js +++ b/services/web/test/unit/src/Subscription/SubscriptionViewModelBuilderTests.js @@ -269,7 +269,25 @@ describe('SubscriptionViewModelBuilder', function () { ) assert.deepEqual(usersBestSubscription, { type: 'group', - subscription: this.groupSubscription, + subscription: {}, + plan: this.groupPlan, + remainingTrialDays: -1, + }) + }) + + it('should return a group subscription with team name when user has one', async function () { + this.SubscriptionLocator.promises.getMemberSubscriptions + .withArgs(this.user) + .resolves([ + Object.assign({}, this.groupSubscription, { teamName: 'test team' }), + ]) + const usersBestSubscription = + await this.SubscriptionViewModelBuilder.promises.getBestSubscription( + this.user + ) + assert.deepEqual(usersBestSubscription, { + type: 'group', + subscription: { teamName: 'test team' }, plan: this.groupPlan, remainingTrialDays: -1, }) @@ -345,7 +363,7 @@ describe('SubscriptionViewModelBuilder', function () { assert.deepEqual(usersBestSubscription, { type: 'group', - subscription: this.groupSubscription, + subscription: {}, plan: this.groupPlan, remainingTrialDays: -1, }) @@ -434,7 +452,7 @@ describe('SubscriptionViewModelBuilder', function () { assert.deepEqual(usersBestSubscription, { type: 'group', - subscription: this.groupSubscription, + subscription: {}, plan: this.groupPlan, remainingTrialDays: -1, })