diff --git a/services/web/app/coffee/Features/Email/EmailBuilder.coffee b/services/web/app/coffee/Features/Email/EmailBuilder.coffee index f6027bf422..e7b458d444 100644 --- a/services/web/app/coffee/Features/Email/EmailBuilder.coffee +++ b/services/web/app/coffee/Features/Email/EmailBuilder.coffee @@ -80,6 +80,15 @@ I'm sorry to see you cancelled your #{settings.appName} premium account. Would y ctaURL: (opts) -> "https://docs.google.com/forms/d/e/1FAIpQLScqU6Je1r4Afz6ul6oY0RAfN7RabdWv_oL1u7Rj1YBmXS4fiQ/viewform?usp=sf_link" }) +templates.reactivatedSubscription = CTAEmailTemplate({ + subject: () -> "Subscription Reactivated - #{settings.appName}" + message: (opts) -> """ +Your subscription was reactivated successfully. +""" + ctaText: () -> "View Subscription Dashboard" + ctaURL: (opts) -> "#{settings.siteUrl}/user/subscription" +}) + templates.passwordResetRequested = CTAEmailTemplate({ subject: () -> "Password Reset - #{settings.appName}" title: () -> "Password Reset" diff --git a/services/web/app/coffee/Features/Subscription/SubscriptionHandler.coffee b/services/web/app/coffee/Features/Subscription/SubscriptionHandler.coffee index 9bbbf62ba5..a57916fac7 100644 --- a/services/web/app/coffee/Features/Subscription/SubscriptionHandler.coffee +++ b/services/web/app/coffee/Features/Subscription/SubscriptionHandler.coffee @@ -77,6 +77,8 @@ module.exports = if hasSubscription RecurlyWrapper.reactivateSubscription subscription.recurlySubscription_id, (error) -> return callback(error) if error? + EmailHandler.sendEmail "reactivatedSubscription", to: user.email + Analytics.recordEvent user._id, "subscription-reactivated" callback() else callback() diff --git a/services/web/test/unit/coffee/Subscription/SubscriptionHandlerTests.coffee b/services/web/test/unit/coffee/Subscription/SubscriptionHandlerTests.coffee index bc3488f1d8..d801ca760c 100644 --- a/services/web/test/unit/coffee/Subscription/SubscriptionHandlerTests.coffee +++ b/services/web/test/unit/coffee/Subscription/SubscriptionHandlerTests.coffee @@ -185,6 +185,9 @@ describe "SubscriptionHandler", -> it "should redirect to the subscription dashboard", -> @RecurlyWrapper.reactivateSubscription.called.should.equal false + it "should not send a notification email", -> + sinon.assert.notCalled(@EmailHandler.sendEmail) + describe "with a user with a subscription", -> beforeEach (done) -> @LimitationsManager.userHasV2Subscription.callsArgWith(1, null, true, @subscription) @@ -194,6 +197,8 @@ describe "SubscriptionHandler", -> @RecurlyWrapper.reactivateSubscription.called.should.equal true @RecurlyWrapper.reactivateSubscription.calledWith(@subscription.recurlySubscription_id).should.equal true + it "should send a notification email", -> + sinon.assert.calledWith(@EmailHandler.sendEmail, 'reactivatedSubscription') describe "recurlyCallback", -> describe "with an actionable request", ->