Files
immich/server/src/repositories/notification.repository.spec.ts
2025-02-27 14:59:50 -05:00

71 lines
2.4 KiB
TypeScript

import { EmailRenderRequest, EmailTemplate, NotificationRepository } from 'src/repositories/notification.repository';
import { newFakeLoggingRepository } from 'test/repositories/logger.repository.mock';
describe(NotificationRepository.name, () => {
let sut: NotificationRepository;
beforeEach(() => {
sut = new NotificationRepository(newFakeLoggingRepository());
});
describe('renderEmail', () => {
it('should render the email correctly for TEST_EMAIL template', async () => {
const request: EmailRenderRequest = {
template: EmailTemplate.TEST_EMAIL,
data: { displayName: 'Alen Turing', baseUrl: 'http://localhost' },
customTemplate: '',
};
const result = await sut.renderEmail(request);
expect(result.html).toContain('<!DOCTYPE html PUBLIC');
expect(result.text).toContain('test email');
});
it('should render the email correctly for WELCOME template', async () => {
const request: EmailRenderRequest = {
template: EmailTemplate.WELCOME,
data: { displayName: 'Alen Turing', username: 'turing', baseUrl: 'http://localhost' },
customTemplate: '',
};
const result = await sut.renderEmail(request);
expect(result.html).toContain('<!DOCTYPE html PUBLIC');
expect(result.text).toContain('A new account has been created for you');
});
it('should render the email correctly for ALBUM_INVITE template', async () => {
const request: EmailRenderRequest = {
template: EmailTemplate.ALBUM_INVITE,
data: {
albumName: 'Vacation',
albumId: '123',
senderName: 'John',
recipientName: 'Jane',
baseUrl: 'http://localhost',
},
customTemplate: '',
};
const result = await sut.renderEmail(request);
expect(result.html).toContain('<!DOCTYPE html PUBLIC');
expect(result.text).toContain('Vacation');
});
it('should render the email correctly for ALBUM_UPDATE template', async () => {
const request: EmailRenderRequest = {
template: EmailTemplate.ALBUM_UPDATE,
data: { albumName: 'Holiday', albumId: '123', recipientName: 'Jane', baseUrl: 'http://localhost' },
customTemplate: '',
};
const result = await sut.renderEmail(request);
expect(result.html).toContain('<!DOCTYPE html PUBLIC');
expect(result.text).toContain('Holiday');
});
});
});