Преглед на файлове

Merge pull request #20004 from overleaf/jel-plans-tests

[web] Add unit tests for new plans page

GitOrigin-RevId: 8e5978d901d9faf123efbdd21ece65aad373cd94
Jessica Lawshe преди 2 години
родител
ревизия
2b463f3062
променени са 1 файла, в които са добавени 51 реда и са изтрити 4 реда
  1. 51 4
      services/web/test/unit/src/Subscription/SubscriptionControllerTests.js

+ 51 - 4
services/web/test/unit/src/Subscription/SubscriptionControllerTests.js

@@ -59,8 +59,6 @@ describe('SubscriptionController', function () {
       },
       },
     }
     }
 
 
-    this.PlansLocator = { findLocalPlanInSettings: sinon.stub() }
-
     this.LimitationsManager = {
     this.LimitationsManager = {
       hasPaidSubscription: sinon.stub(),
       hasPaidSubscription: sinon.stub(),
       userHasV1OrV2Subscription: sinon.stub(),
       userHasV1OrV2Subscription: sinon.stub(),
@@ -148,7 +146,6 @@ describe('SubscriptionController', function () {
         '../Authentication/SessionManager': this.SessionManager,
         '../Authentication/SessionManager': this.SessionManager,
         './SubscriptionHandler': this.SubscriptionHandler,
         './SubscriptionHandler': this.SubscriptionHandler,
         './SubscriptionHelper': this.SubscriptionHelper,
         './SubscriptionHelper': this.SubscriptionHelper,
-        './PlansLocator': this.PlansLocator,
         './SubscriptionViewModelBuilder': this.SubscriptionViewModelBuilder,
         './SubscriptionViewModelBuilder': this.SubscriptionViewModelBuilder,
         './LimitationsManager': this.LimitationsManager,
         './LimitationsManager': this.LimitationsManager,
         '../../infrastructure/GeoIpLookup': this.GeoIpLookup,
         '../../infrastructure/GeoIpLookup': this.GeoIpLookup,
@@ -176,6 +173,9 @@ describe('SubscriptionController', function () {
           setUserPropertyForUser: sinon.stub(),
           setUserPropertyForUser: sinon.stub(),
         }),
         }),
         '../../infrastructure/Features': this.Features,
         '../../infrastructure/Features': this.Features,
+        '../../util/currency': (this.currency = {
+          formatCurrencyLocalized: sinon.stub(),
+        }),
       },
       },
     })
     })
 
 
@@ -402,6 +402,30 @@ describe('SubscriptionController', function () {
         })
         })
       })
       })
     })
     })
+
+    describe('localCcyAssignment', function () {
+      it('uses formatCurrencyLocalized when variant is enabled', function (done) {
+        this.SplitTestV2Hander.promises.getAssignment.resolves({
+          variant: 'enabled',
+        })
+        this.res.render = (page, opts) => {
+          expect(opts.formatCurrency).to.equal(
+            this.currency.formatCurrencyLocalized
+          )
+          done()
+        }
+        this.SubscriptionController.plansPage(this.req, this.res)
+      })
+      it('uses formatCurrencyDefault when variant is default', function (done) {
+        this.res.render = (page, opts) => {
+          expect(opts.formatCurrency).to.equal(
+            this.SubscriptionHelper.formatCurrencyDefault
+          )
+          done()
+        }
+        this.SubscriptionController.plansPage(this.req, this.res)
+      })
+    })
   })
   })
 
 
   describe('plansPage light touch redesign', function () {
   describe('plansPage light touch redesign', function () {
@@ -619,6 +643,30 @@ describe('SubscriptionController', function () {
         })
         })
       })
       })
     })
     })
+
+    describe('localCcyAssignment', function () {
+      it('uses formatCurrencyLocalized when variant is enabled', function (done) {
+        this.SplitTestV2Hander.promises.getAssignment.resolves({
+          variant: 'enabled',
+        })
+        this.res.render = (page, opts) => {
+          expect(opts.formatCurrency).to.equal(
+            this.currency.formatCurrencyLocalized
+          )
+          done()
+        }
+        this.SubscriptionController.plansPageLightDesign(this.req, this.res)
+      })
+      it('uses formatCurrencyDefault when variant is default', function (done) {
+        this.res.render = (page, opts) => {
+          expect(opts.formatCurrency).to.equal(
+            this.SubscriptionHelper.formatCurrencyDefault
+          )
+          done()
+        }
+        this.SubscriptionController.plansPageLightDesign(this.req, this.res)
+      })
+    })
   })
   })
 
 
   describe('interstitialPaymentPage', function () {
   describe('interstitialPaymentPage', function () {
@@ -641,7 +689,6 @@ describe('SubscriptionController', function () {
 
 
     describe('with a user with subscription', function () {
     describe('with a user with subscription', function () {
       it('should redirect to the subscription dashboard', function (done) {
       it('should redirect to the subscription dashboard', function (done) {
-        this.PlansLocator.findLocalPlanInSettings.returns({})
         this.LimitationsManager.promises.userHasV1OrV2Subscription.resolves(
         this.LimitationsManager.promises.userHasV1OrV2Subscription.resolves(
           true
           true
         )
         )