pwa notifications
This commit is contained in:
@@ -3,12 +3,14 @@ import { UserEntity } from '../auth/user.entity';
|
||||
import { MailService } from '../mail/mail.service';
|
||||
import { InMemoryRepository } from '../testing/in-memory-repository';
|
||||
import { TaskDigestService } from './task-digest.service';
|
||||
import { TaskPushService } from './task-push.service';
|
||||
import { UserTaskEntity } from './user-task.entity';
|
||||
|
||||
describe('TaskDigestService', () => {
|
||||
let usersRepository: InMemoryRepository<UserEntity>;
|
||||
let tasksRepository: InMemoryRepository<UserTaskEntity>;
|
||||
let mailService: Pick<MailService, 'sendTaskDigestEmail'>;
|
||||
let taskPushService: Pick<TaskPushService, 'sendTaskDigest'>;
|
||||
let service: TaskDigestService;
|
||||
|
||||
beforeEach(() => {
|
||||
@@ -17,6 +19,9 @@ describe('TaskDigestService', () => {
|
||||
mailService = {
|
||||
sendTaskDigestEmail: jest.fn().mockResolvedValue(undefined),
|
||||
};
|
||||
taskPushService = {
|
||||
sendTaskDigest: jest.fn().mockResolvedValue(undefined),
|
||||
};
|
||||
service = new TaskDigestService(
|
||||
usersRepository as never,
|
||||
tasksRepository as never,
|
||||
@@ -25,6 +30,7 @@ describe('TaskDigestService', () => {
|
||||
TASK_DIGEST_TIMEZONE: 'Europe/Budapest',
|
||||
}),
|
||||
mailService as MailService,
|
||||
taskPushService as TaskPushService,
|
||||
);
|
||||
});
|
||||
|
||||
@@ -69,6 +75,25 @@ describe('TaskDigestService', () => {
|
||||
],
|
||||
},
|
||||
);
|
||||
expect(taskPushService.sendTaskDigest).toHaveBeenCalledWith('owner-1', {
|
||||
slot: 'morning',
|
||||
date: '2026-06-29',
|
||||
tasksUrl: 'http://client.test/tasks',
|
||||
todayTasks: [
|
||||
{
|
||||
title: 'Heute',
|
||||
notes: undefined,
|
||||
dueDate: '2026-06-29',
|
||||
},
|
||||
],
|
||||
overdueTasks: [
|
||||
{
|
||||
title: 'Alt',
|
||||
notes: undefined,
|
||||
dueDate: '2026-06-28',
|
||||
},
|
||||
],
|
||||
});
|
||||
expect(
|
||||
(await usersRepository.findOne({ where: { id: 'owner-1' } }))
|
||||
?.taskDigestMorningProcessedDate,
|
||||
@@ -82,6 +107,7 @@ describe('TaskDigestService', () => {
|
||||
await service.processDueDigests(new Date('2026-06-29T07:00:00.000Z'));
|
||||
|
||||
expect(mailService.sendTaskDigestEmail).not.toHaveBeenCalled();
|
||||
expect(taskPushService.sendTaskDigest).not.toHaveBeenCalled();
|
||||
expect(
|
||||
(await usersRepository.findOne({ where: { id: 'owner-1' } }))
|
||||
?.taskDigestMorningProcessedDate,
|
||||
@@ -111,6 +137,7 @@ describe('TaskDigestService', () => {
|
||||
await service.processDueDigests(new Date('2026-06-29T13:00:00.000Z'));
|
||||
|
||||
expect(mailService.sendTaskDigestEmail).toHaveBeenCalledTimes(1);
|
||||
expect(taskPushService.sendTaskDigest).toHaveBeenCalledTimes(1);
|
||||
expect(mailService.sendTaskDigestEmail).toHaveBeenCalledWith(
|
||||
'both@example.com',
|
||||
expect.objectContaining({ slot: 'afternoon' }),
|
||||
@@ -124,6 +151,7 @@ describe('TaskDigestService', () => {
|
||||
await service.processDueDigests(new Date('2026-06-29T08:30:00.000Z'));
|
||||
|
||||
expect(mailService.sendTaskDigestEmail).not.toHaveBeenCalled();
|
||||
expect(taskPushService.sendTaskDigest).not.toHaveBeenCalled();
|
||||
});
|
||||
|
||||
async function saveUser(overrides: Partial<UserEntity> = {}) {
|
||||
|
||||
Reference in New Issue
Block a user