0
Fork 0
mirror of https://github.com/TryGhost/Ghost.git synced 2025-02-03 23:00:14 -05:00

Updated milestones e2e test to better check for last email sent safeguard

refs https://www.notion.so/ghost/Marketing-Milestone-email-campaigns-1d2c9dee3cfa4029863edb16092ad5c4?pvs=4

- Didn't check for the specific case before and fixed a bug that was allowiing the test to pass even though it should fail
This commit is contained in:
Aileen Nowak 2023-02-23 13:40:03 +02:00 committed by Aileen Booker
parent 314b88cfb5
commit ff3568293c

View file

@ -218,13 +218,13 @@ describe('Milestones Service', function () {
assert.ok(memberMilestoneModel.get('email_sent_at')); assert.ok(memberMilestoneModel.get('email_sent_at'));
// Reached the first milestone for ARR // Reached the first milestone for ARR
// but has already reached members milestone, so no new one // - Members already reached, no new one will be created
// will be created // - Less than two weeks since last milestone email, no email will be sent
await createMemberWithSubscription('month', 500, 'usd', '2000-01-10'); await createMemberWithSubscription('month', 500, 'usd', '2000-01-10');
await createMemberWithSubscription('month', 500, 'eur', '2000-01-10'); await createMemberWithSubscription('month', 500, 'eur', '2000-01-10');
await createMemberWithSubscription('year', 1000, 'usd', '2000-01-10'); await createMemberWithSubscription('year', 1000, 'usd', '2000-01-10');
const fourthResultPromise = milestonesService.initAndRun(fifteenDays); const fourthResultPromise = milestonesService.initAndRun(100);
await clock.tickAsync(fifteenDays); await clock.tickAsync(100);
const fourthRun = await fourthResultPromise; const fourthRun = await fourthResultPromise;
assert(fourthRun.members === undefined); assert(fourthRun.members === undefined);
assert(fourthRun.arr.value === 100); assert(fourthRun.arr.value === 100);
@ -236,7 +236,7 @@ describe('Milestones Service', function () {
assert.equal(arrMilestoneModel.get('type'), 'arr'); assert.equal(arrMilestoneModel.get('type'), 'arr');
assert.equal(arrMilestoneModel.get('value'), 100); assert.equal(arrMilestoneModel.get('value'), 100);
assert.ok(arrMilestoneModel.get('created_at')); assert.ok(arrMilestoneModel.get('created_at'));
assert.ok(memberMilestoneModel.get('email_sent_at')); assert.equal(arrMilestoneModel.get('email_sent_at'), null);
assert(loggingStub.called); assert(loggingStub.called);
}); });
@ -246,8 +246,8 @@ describe('Milestones Service', function () {
mockManager.mockSetting('stripe_connect_publishable_key', 'pk_test_89843uihsidfh98832uo8ri'); mockManager.mockSetting('stripe_connect_publishable_key', 'pk_test_89843uihsidfh98832uo8ri');
await createFreeMembers(12); await createFreeMembers(12);
const resultPromise = milestonesService.initAndRun(100); const resultPromise = milestonesService.initAndRun(fifteenDays);
await clock.tickAsync(100); await clock.tickAsync(fifteenDays);
const result = await resultPromise; const result = await resultPromise;
assert(result.members.value === 20); assert(result.members.value === 20);
assert(result.members.emailSentAt !== undefined); assert(result.members.emailSentAt !== undefined);