mirror of
https://github.com/TryGhost/Ghost.git
synced 2025-02-17 23:44:39 -05:00
Added email alert trigger for free member signup
refs TryGhost/Team#1826 - fires email alert on free member creation after they finish signing up via checkout link
This commit is contained in:
parent
5f157efcd9
commit
aeadf8a5e1
2 changed files with 48 additions and 3 deletions
|
@ -55,6 +55,42 @@ describe('sendMagicLink', function () {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('triggers email alert for free member signup', async function () {
|
||||||
|
const email = 'newly-created-user-magic-link-test@test.com';
|
||||||
|
await membersAgent.post('/api/send-magic-link')
|
||||||
|
.body({
|
||||||
|
email,
|
||||||
|
emailType: 'signup'
|
||||||
|
})
|
||||||
|
.expectEmptyBody()
|
||||||
|
.expectStatus(201);
|
||||||
|
|
||||||
|
// Check email is sent
|
||||||
|
const mail = mockManager.assert.sentEmail({
|
||||||
|
to: email,
|
||||||
|
subject: /Complete your sign up to Ghost!/
|
||||||
|
});
|
||||||
|
|
||||||
|
// Get link from email
|
||||||
|
const [url] = mail.text.match(/https?:\/\/[^\s]+/);
|
||||||
|
const parsed = new URL(url);
|
||||||
|
const token = parsed.searchParams.get('token');
|
||||||
|
|
||||||
|
// Get member data from token
|
||||||
|
const data = await membersService.api.getMemberDataFromMagicLinkToken(token);
|
||||||
|
|
||||||
|
// Check member alert is sent to site owners
|
||||||
|
mockManager.assert.sentEmail({
|
||||||
|
to: 'jbloggs@example.com',
|
||||||
|
subject: /🥳 Free member signup: newly-created-user-magic-link-test@test.com/
|
||||||
|
});
|
||||||
|
|
||||||
|
// Check member data is returned
|
||||||
|
should(data).match({
|
||||||
|
email
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
it('Converts the urlHistory to the attribution and stores it in the token', async function () {
|
it('Converts the urlHistory to the attribution and stores it in the token', async function () {
|
||||||
const email = 'newly-created-user-magic-link-test-2@test.com';
|
const email = 'newly-created-user-magic-link-test-2@test.com';
|
||||||
await membersAgent.post('/api/send-magic-link')
|
await membersAgent.post('/api/send-magic-link')
|
||||||
|
|
|
@ -60,6 +60,7 @@ module.exports = function MembersAPI({
|
||||||
},
|
},
|
||||||
stripeAPIService,
|
stripeAPIService,
|
||||||
offersAPI,
|
offersAPI,
|
||||||
|
staffService,
|
||||||
labsService,
|
labsService,
|
||||||
newslettersService,
|
newslettersService,
|
||||||
memberAttributionService
|
memberAttributionService
|
||||||
|
@ -85,6 +86,7 @@ module.exports = function MembersAPI({
|
||||||
stripeAPIService,
|
stripeAPIService,
|
||||||
tokenService,
|
tokenService,
|
||||||
newslettersService,
|
newslettersService,
|
||||||
|
staffService,
|
||||||
labsService,
|
labsService,
|
||||||
productRepository,
|
productRepository,
|
||||||
Member,
|
Member,
|
||||||
|
@ -149,6 +151,7 @@ module.exports = function MembersAPI({
|
||||||
productRepository,
|
productRepository,
|
||||||
StripePrice,
|
StripePrice,
|
||||||
tokenService,
|
tokenService,
|
||||||
|
staffService,
|
||||||
sendEmailWithMagicLink
|
sendEmailWithMagicLink
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -218,6 +221,12 @@ module.exports = function MembersAPI({
|
||||||
return member;
|
return member;
|
||||||
}
|
}
|
||||||
const newMember = await users.create({name, email, labels, newsletters, attribution});
|
const newMember = await users.create({name, email, labels, newsletters, attribution});
|
||||||
|
|
||||||
|
// Notify staff users of new free member signup
|
||||||
|
if (labsService.isSet('emailAlerts')) {
|
||||||
|
await staffService.notifyFreeMemberSignup(newMember.toJSON());
|
||||||
|
}
|
||||||
|
|
||||||
await MemberLoginEvent.add({member_id: newMember.id});
|
await MemberLoginEvent.add({member_id: newMember.id});
|
||||||
return getMemberIdentityData(email);
|
return getMemberIdentityData(email);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue