Initial commit with Email Import Wizard and Task Processor updates
This commit is contained in:
@@ -0,0 +1,55 @@
|
||||
import { Test, TestingModule } from '@nestjs/testing';
|
||||
import { getRepositoryToken } from '@nestjs/typeorm';
|
||||
import { EmailController } from './email.controller';
|
||||
import { Email } from '../database/entities/email.entity';
|
||||
|
||||
const mockEmails: Partial<Email>[] = [
|
||||
{ Id: 1, MessageId: 'msg-1', SenderAddress: 'a@test.de', RecipientAddress: 'b@test.de', Subject: 'Test 1', Date: new Date(), Body: 'body', Status: 0 },
|
||||
{ Id: 2, MessageId: 'msg-2', SenderAddress: 'c@test.de', RecipientAddress: 'd@test.de', Subject: 'Test 2', Date: new Date(), Body: 'body2', Status: 1 },
|
||||
];
|
||||
|
||||
const mockQueryBuilder = {
|
||||
orderBy: jest.fn().mockReturnThis(),
|
||||
take: jest.fn().mockReturnThis(),
|
||||
where: jest.fn().mockReturnThis(),
|
||||
getMany: jest.fn().mockResolvedValue(mockEmails),
|
||||
};
|
||||
|
||||
const mockRepo = {
|
||||
createQueryBuilder: jest.fn().mockReturnValue(mockQueryBuilder),
|
||||
findOneByOrFail: jest.fn().mockResolvedValue(mockEmails[0]),
|
||||
};
|
||||
|
||||
describe('EmailController', () => {
|
||||
let controller: EmailController;
|
||||
|
||||
beforeEach(async () => {
|
||||
const module: TestingModule = await Test.createTestingModule({
|
||||
controllers: [EmailController],
|
||||
providers: [{ provide: getRepositoryToken(Email), useValue: mockRepo }],
|
||||
}).compile();
|
||||
|
||||
controller = module.get<EmailController>(EmailController);
|
||||
});
|
||||
|
||||
it('should be defined', () => {
|
||||
expect(controller).toBeDefined();
|
||||
});
|
||||
|
||||
it('getEmails returns list', async () => {
|
||||
const result = await controller.getEmails();
|
||||
expect(result).toHaveLength(2);
|
||||
expect(mockQueryBuilder.orderBy).toHaveBeenCalledWith('e.Date', 'DESC');
|
||||
});
|
||||
|
||||
it('getEmails filters by status', async () => {
|
||||
await controller.getEmails('1');
|
||||
expect(mockQueryBuilder.where).toHaveBeenCalledWith('e.Status = :status', { status: 1 });
|
||||
});
|
||||
|
||||
it('getEmail returns single item', async () => {
|
||||
const result = await controller.getEmail('1');
|
||||
expect(result).toEqual(mockEmails[0]);
|
||||
expect(mockRepo.findOneByOrFail).toHaveBeenCalledWith({ Id: 1 });
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user