mirror of
https://github.com/overleaf/overleaf.git
synced 2025-02-18 10:12:08 +00:00
Merge pull request #6559 from overleaf/tm-teardown-onboarding-email-split-test
Implement 'send-email' variant for trial onboarding email for all users GitOrigin-RevId: f53b86d875a1a4e146dc57603b7a83ac098f9cdf
This commit is contained in:
parent
1c5949f715
commit
45ac55c7f0
2 changed files with 2 additions and 31 deletions
|
@ -1,5 +1,4 @@
|
||||||
const AnalyticsManager = require('../Analytics/AnalyticsManager')
|
const AnalyticsManager = require('../Analytics/AnalyticsManager')
|
||||||
const SplitTestHandler = require('../SplitTests/SplitTestHandler')
|
|
||||||
const SubscriptionEmailHandler = require('./SubscriptionEmailHandler')
|
const SubscriptionEmailHandler = require('./SubscriptionEmailHandler')
|
||||||
const { ObjectID } = require('mongodb')
|
const { ObjectID } = require('mongodb')
|
||||||
|
|
||||||
|
@ -66,16 +65,8 @@ async function _sendSubscriptionStartedEvent(userId, eventData) {
|
||||||
isTrial
|
isTrial
|
||||||
)
|
)
|
||||||
|
|
||||||
// send the trial onboarding email
|
|
||||||
if (isTrial) {
|
if (isTrial) {
|
||||||
const assignment = await SplitTestHandler.promises.getAssignmentForUser(
|
await SubscriptionEmailHandler.sendTrialOnboardingEmail(userId)
|
||||||
userId,
|
|
||||||
'trial-onboarding-email'
|
|
||||||
)
|
|
||||||
|
|
||||||
if (assignment.variant === 'send-email') {
|
|
||||||
await SubscriptionEmailHandler.sendTrialOnboardingEmail(userId)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -29,11 +29,6 @@ describe('RecurlyEventHandler', function () {
|
||||||
'./SubscriptionEmailHandler': (this.SubscriptionEmailHandler = {
|
'./SubscriptionEmailHandler': (this.SubscriptionEmailHandler = {
|
||||||
sendTrialOnboardingEmail: sinon.stub(),
|
sendTrialOnboardingEmail: sinon.stub(),
|
||||||
}),
|
}),
|
||||||
'../SplitTests/SplitTestHandler': (this.SplitTestHandler = {
|
|
||||||
promises: {
|
|
||||||
getAssignmentForUser: sinon.stub().resolves({ variant: 'default' }),
|
|
||||||
},
|
|
||||||
}),
|
|
||||||
'../Analytics/AnalyticsManager': (this.AnalyticsManager = {
|
'../Analytics/AnalyticsManager': (this.AnalyticsManager = {
|
||||||
recordEventForUser: sinon.stub(),
|
recordEventForUser: sinon.stub(),
|
||||||
setUserPropertyForUser: sinon.stub(),
|
setUserPropertyForUser: sinon.stub(),
|
||||||
|
@ -75,28 +70,14 @@ describe('RecurlyEventHandler', function () {
|
||||||
'subscription-is-trial',
|
'subscription-is-trial',
|
||||||
true
|
true
|
||||||
)
|
)
|
||||||
sinon.assert.calledWith(
|
|
||||||
this.SplitTestHandler.promises.getAssignmentForUser,
|
|
||||||
this.userId,
|
|
||||||
'trial-onboarding-email'
|
|
||||||
)
|
|
||||||
})
|
})
|
||||||
|
|
||||||
it('sends free trial onboarding email if user in ab group', async function () {
|
it('sends free trial onboarding email if user starting a trial', async function () {
|
||||||
this.SplitTestHandler.promises.getAssignmentForUser = sinon
|
|
||||||
.stub()
|
|
||||||
.resolves({ variant: 'send-email' })
|
|
||||||
|
|
||||||
await this.RecurlyEventHandler.sendRecurlyAnalyticsEvent(
|
await this.RecurlyEventHandler.sendRecurlyAnalyticsEvent(
|
||||||
'new_subscription_notification',
|
'new_subscription_notification',
|
||||||
this.eventData
|
this.eventData
|
||||||
)
|
)
|
||||||
|
|
||||||
sinon.assert.calledWith(
|
|
||||||
this.SplitTestHandler.promises.getAssignmentForUser,
|
|
||||||
this.userId,
|
|
||||||
'trial-onboarding-email'
|
|
||||||
)
|
|
||||||
sinon.assert.called(this.SubscriptionEmailHandler.sendTrialOnboardingEmail)
|
sinon.assert.called(this.SubscriptionEmailHandler.sendTrialOnboardingEmail)
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -356,6 +337,5 @@ describe('RecurlyEventHandler', function () {
|
||||||
sinon.assert.notCalled(this.AnalyticsManager.setUserPropertyForUser)
|
sinon.assert.notCalled(this.AnalyticsManager.setUserPropertyForUser)
|
||||||
sinon.assert.notCalled(this.AnalyticsManager.setUserPropertyForUser)
|
sinon.assert.notCalled(this.AnalyticsManager.setUserPropertyForUser)
|
||||||
sinon.assert.notCalled(this.AnalyticsManager.setUserPropertyForUser)
|
sinon.assert.notCalled(this.AnalyticsManager.setUserPropertyForUser)
|
||||||
sinon.assert.notCalled(this.SplitTestHandler.promises.getAssignmentForUser)
|
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
Loading…
Reference in a new issue