fix: allow expired offline subscriptions to receive dashboard emails (#1041)
This commit is contained in:
parent
f975dd9697
commit
4fe8e9a79f
2 changed files with 0 additions and 52 deletions
|
@ -89,42 +89,4 @@ describe('CreateOfflineSubscriptionToken', () => {
|
||||||
expect(domainEventFactory.createEmailRequestedEvent).not.toHaveBeenCalled()
|
expect(domainEventFactory.createEmailRequestedEvent).not.toHaveBeenCalled()
|
||||||
expect(domainEventPublisher.publish).not.toHaveBeenCalled()
|
expect(domainEventPublisher.publish).not.toHaveBeenCalled()
|
||||||
})
|
})
|
||||||
|
|
||||||
it('should not create an offline subscription token if email has a cancelled subscription', async () => {
|
|
||||||
offlineUserSubscriptionRepository.findOneByEmail = jest
|
|
||||||
.fn()
|
|
||||||
.mockReturnValue({ cancelled: true, endsAt: 100 } as jest.Mocked<OfflineUserSubscription>)
|
|
||||||
|
|
||||||
expect(
|
|
||||||
await createUseCase().execute({
|
|
||||||
userEmail: 'test@test.com',
|
|
||||||
}),
|
|
||||||
).toEqual({
|
|
||||||
success: false,
|
|
||||||
error: 'subscription-canceled',
|
|
||||||
})
|
|
||||||
|
|
||||||
expect(offlineSubscriptionTokenRepository.save).not.toHaveBeenCalled()
|
|
||||||
expect(domainEventFactory.createEmailRequestedEvent).not.toHaveBeenCalled()
|
|
||||||
expect(domainEventPublisher.publish).not.toHaveBeenCalled()
|
|
||||||
})
|
|
||||||
|
|
||||||
it('should not create an offline subscription token if email has an outdated subscription', async () => {
|
|
||||||
offlineUserSubscriptionRepository.findOneByEmail = jest
|
|
||||||
.fn()
|
|
||||||
.mockReturnValue({ cancelled: false, endsAt: 2 } as jest.Mocked<OfflineUserSubscription>)
|
|
||||||
|
|
||||||
expect(
|
|
||||||
await createUseCase().execute({
|
|
||||||
userEmail: 'test@test.com',
|
|
||||||
}),
|
|
||||||
).toEqual({
|
|
||||||
success: false,
|
|
||||||
error: 'subscription-expired',
|
|
||||||
})
|
|
||||||
|
|
||||||
expect(offlineSubscriptionTokenRepository.save).not.toHaveBeenCalled()
|
|
||||||
expect(domainEventFactory.createEmailRequestedEvent).not.toHaveBeenCalled()
|
|
||||||
expect(domainEventPublisher.publish).not.toHaveBeenCalled()
|
|
||||||
})
|
|
||||||
})
|
})
|
||||||
|
|
|
@ -37,20 +37,6 @@ export class CreateOfflineSubscriptionToken implements UseCaseInterface {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (existingSubscription.cancelled) {
|
|
||||||
return {
|
|
||||||
success: false,
|
|
||||||
error: 'subscription-canceled',
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (existingSubscription.endsAt < this.timer.getTimestampInMicroseconds()) {
|
|
||||||
return {
|
|
||||||
success: false,
|
|
||||||
error: 'subscription-expired',
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
const token = await this.cryptoNode.generateRandomKey(128)
|
const token = await this.cryptoNode.generateRandomKey(128)
|
||||||
|
|
||||||
const offlineSubscriptionToken = {
|
const offlineSubscriptionToken = {
|
||||||
|
|
Loading…
Reference in a new issue