Преглед изворни кода

Add email-change queue

GitOrigin-RevId: a5bbb4682223ee00db0c9a4070b8178a60eef83f
Andrew Rumble пре 1 година
родитељ
комит
4779b17ad1

+ 4 - 0
services/web/app/src/infrastructure/Queues.js

@@ -27,6 +27,9 @@ const QUEUES_JOB_OPTIONS = {
     removeOnFail: MAX_FAILED_JOBS_RETAINED,
     attempts: 3,
   },
+  'analytics-email-change': {
+    removeOnFail: MAX_FAILED_JOBS_RETAINED_ANALYTICS,
+  },
   'emails-onboarding': {
     removeOnFail: MAX_FAILED_JOBS_RETAINED,
   },
@@ -59,6 +62,7 @@ const QUEUE_OPTIONS = {
 
 const ANALYTICS_QUEUES = [
   'analytics-account-mapping',
+  'analytics-email-change',
   'analytics-events',
   'analytics-editing-sessions',
   'analytics-user-properties',

+ 18 - 12
services/web/test/unit/src/Analytics/AnalyticsManagerTests.js

@@ -38,20 +38,25 @@ describe('AnalyticsManager', function () {
       add: sinon.stub().resolves(),
       process: sinon.stub().resolves(),
     }
-    const self = this
+    this.analyticsEmailChangeQueue = {
+      add: sinon.stub().resolves(),
+      process: sinon.stub().resolves(),
+    }
     this.Queues = {
       getQueue: queueName => {
         switch (queueName) {
           case 'analytics-events':
-            return self.analyticsEventsQueue
+            return this.analyticsEventsQueue
           case 'analytics-editing-sessions':
-            return self.analyticsEditingSessionQueue
+            return this.analyticsEditingSessionQueue
           case 'emails-onboarding':
-            return self.onboardingEmailsQueue
+            return this.onboardingEmailsQueue
           case 'analytics-user-properties':
-            return self.analyticsUserPropertiesQueue
+            return this.analyticsUserPropertiesQueue
           case 'analytics-account-mapping':
-            return self.analyticsAccountMappingQueue
+            return this.analyticsAccountMappingQueue
+          case 'analytics-email-change':
+            return this.analyticsEmailChangeQueue
           default:
             throw new Error('Unexpected queue name')
         }
@@ -308,7 +313,6 @@ describe('AnalyticsManager', function () {
     beforeEach(function () {
       this.userId = '123abc'
       this.analyticsId = 'bccd308c-5d72-426e-a106-662e88557795'
-      const self = this
       this.AnalyticsManager = SandboxedModule.require(MODULE_PATH, {
         requires: {
           '@overleaf/settings': {},
@@ -316,15 +320,17 @@ describe('AnalyticsManager', function () {
             getQueue: queueName => {
               switch (queueName) {
                 case 'analytics-events':
-                  return self.analyticsEventsQueue
+                  return this.analyticsEventsQueue
                 case 'analytics-editing-sessions':
-                  return self.analyticsEditingSessionQueue
+                  return this.analyticsEditingSessionQueue
                 case 'emails-onboarding':
-                  return self.onboardingEmailsQueue
+                  return this.onboardingEmailsQueue
                 case 'analytics-user-properties':
-                  return self.analyticsUserPropertiesQueue
+                  return this.analyticsUserPropertiesQueue
                 case 'analytics-account-mapping':
-                  return self.analyticsAccountMappingQueue
+                  return this.analyticsAccountMappingQueue
+                case 'analytics-email-change':
+                  return this.analyticsEmailChangeQueue
                 default:
                   throw new Error('Unexpected queue name')
               }