mirror of
https://github.com/yu-i-i/overleaf-cep.git
synced 2026-11-14 22:23:42 +01:00
Refactor successful subcription to use async/await (#8377)
GitOrigin-RevId: 5748486848c6e0576c974e5595acbcdee3daf7f3
This commit is contained in:
@@ -300,24 +300,21 @@ function createSubscription(req, res, next) {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
function successfulSubscription(req, res, next) {
|
async function successfulSubscription(req, res) {
|
||||||
const user = SessionManager.getSessionUser(req.session)
|
const user = SessionManager.getSessionUser(req.session)
|
||||||
return SubscriptionViewModelBuilder.buildUsersSubscriptionViewModel(
|
const { personalSubscription } =
|
||||||
user,
|
await SubscriptionViewModelBuilder.promises.buildUsersSubscriptionViewModel(
|
||||||
function (error, { personalSubscription } = {}) {
|
user
|
||||||
if (error) {
|
)
|
||||||
return next(error)
|
|
||||||
}
|
if (!personalSubscription) {
|
||||||
if (personalSubscription == null) {
|
res.redirect('/user/subscription/plans')
|
||||||
res.redirect('/user/subscription/plans')
|
} else {
|
||||||
} else {
|
res.render('subscriptions/successful_subscription', {
|
||||||
res.render('subscriptions/successful_subscription', {
|
title: 'thank_you',
|
||||||
title: 'thank_you',
|
personalSubscription,
|
||||||
personalSubscription,
|
})
|
||||||
})
|
}
|
||||||
}
|
|
||||||
}
|
|
||||||
)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function cancelSubscription(req, res, next) {
|
function cancelSubscription(req, res, next) {
|
||||||
@@ -585,7 +582,7 @@ module.exports = {
|
|||||||
userSubscriptionPage: expressify(userSubscriptionPage),
|
userSubscriptionPage: expressify(userSubscriptionPage),
|
||||||
interstitialPaymentPage: expressify(interstitialPaymentPage),
|
interstitialPaymentPage: expressify(interstitialPaymentPage),
|
||||||
createSubscription,
|
createSubscription,
|
||||||
successfulSubscription,
|
successfulSubscription: expressify(successfulSubscription),
|
||||||
cancelSubscription,
|
cancelSubscription,
|
||||||
canceledSubscription,
|
canceledSubscription,
|
||||||
cancelV1Subscription,
|
cancelV1Subscription,
|
||||||
|
|||||||
@@ -381,31 +381,26 @@ describe('SubscriptionController', function () {
|
|||||||
})
|
})
|
||||||
|
|
||||||
describe('successfulSubscription', function () {
|
describe('successfulSubscription', function () {
|
||||||
it('without a personnal subscription', function (done) {
|
it('without a personal subscription', function (done) {
|
||||||
this.SubscriptionViewModelBuilder.buildUsersSubscriptionViewModel.callsArgWith(
|
this.SubscriptionViewModelBuilder.promises.buildUsersSubscriptionViewModel.resolves(
|
||||||
1,
|
|
||||||
null,
|
|
||||||
{}
|
{}
|
||||||
)
|
)
|
||||||
this.res.callback = () => {
|
this.res.redirect = url => {
|
||||||
assert.equal(this.res.redirectedTo, '/user/subscription/plans')
|
url.should.equal('/user/subscription/plans')
|
||||||
done()
|
done()
|
||||||
}
|
}
|
||||||
this.SubscriptionController.successfulSubscription(this.req, this.res)
|
this.SubscriptionController.successfulSubscription(this.req, this.res)
|
||||||
})
|
})
|
||||||
|
|
||||||
it('with a personnal subscription', function (done) {
|
it('with a personal subscription', function (done) {
|
||||||
this.SubscriptionViewModelBuilder.buildUsersSubscriptionViewModel.callsArgWith(
|
this.SubscriptionViewModelBuilder.promises.buildUsersSubscriptionViewModel.resolves(
|
||||||
1,
|
{
|
||||||
null,
|
personalSubscription: 'foo',
|
||||||
{ personalSubscription: 'foo' }
|
}
|
||||||
)
|
)
|
||||||
this.res.callback = () => {
|
this.res.render = (url, variables) => {
|
||||||
assert.equal(
|
url.should.equal('subscriptions/successful_subscription')
|
||||||
this.res.renderedTemplate,
|
assert.deepEqual(variables, {
|
||||||
'subscriptions/successful_subscription'
|
|
||||||
)
|
|
||||||
assert.deepEqual(this.res.renderedVariables, {
|
|
||||||
title: 'thank_you',
|
title: 'thank_you',
|
||||||
personalSubscription: 'foo',
|
personalSubscription: 'foo',
|
||||||
})
|
})
|
||||||
@@ -414,20 +409,18 @@ describe('SubscriptionController', function () {
|
|||||||
this.SubscriptionController.successfulSubscription(this.req, this.res)
|
this.SubscriptionController.successfulSubscription(this.req, this.res)
|
||||||
})
|
})
|
||||||
|
|
||||||
it('with an error', function () {
|
it('with an error', function (done) {
|
||||||
const next = sinon.stub()
|
this.SubscriptionViewModelBuilder.promises.buildUsersSubscriptionViewModel.resolves(
|
||||||
const error = new Error('test')
|
|
||||||
this.SubscriptionViewModelBuilder.buildUsersSubscriptionViewModel.callsArgWith(
|
|
||||||
1,
|
|
||||||
error,
|
|
||||||
undefined
|
undefined
|
||||||
)
|
)
|
||||||
this.SubscriptionController.successfulSubscription(
|
this.SubscriptionController.successfulSubscription(
|
||||||
this.req,
|
this.req,
|
||||||
this.res,
|
this.res,
|
||||||
next
|
error => {
|
||||||
|
assert.isNotNull(error)
|
||||||
|
done()
|
||||||
|
}
|
||||||
)
|
)
|
||||||
sinon.assert.calledWith(next, error)
|
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user