Untitled
unknown
plain_text
5 months ago
2.0 kB
4
Indexable
import { EngagementInsuranceHandler } from './EngagementInsuranceHandler'; import { QuotesHandler } from './QuotesHandler'; import { LoggerInterface } from './LoggerInterface'; // Adjust the import based on your structure jest.mock('./QuotesHandler'); jest.mock('./LoggerInterface'); describe('EngagementInsuranceHandler', () => { let handler: EngagementInsuranceHandler; let mockQuotesHandler: QuotesHandler; let mockLogger: LoggerInterface; beforeEach(() => { mockQuotesHandler = new QuotesHandler() as jest.Mocked<QuotesHandler>; mockLogger = new LoggerInterface() as jest.Mocked<LoggerInterface>; handler = new EngagementInsuranceHandler(mockQuotesHandler); handler['log'] = mockLogger; // Injecting the mocked logger }); afterEach(() => { jest.clearAllMocks(); }); it('should log message type and process quotes when a message is provided', () => { const message = { type: 'QUOTE_REQUEST' }; // Example message handler.handle(message); expect(mockLogger.info).toHaveBeenCalledWith('Message type: ' + message.type); expect(mockLogger.info).toHaveBeenCalledWith('PROCESS_QUOTES'); expect(mockQuotesHandler.processQuotes).toHaveBeenCalledWith(message); }); it('should not process when the message is null', () => { handler.handle(null); expect(mockLogger.info).not.toHaveBeenCalled(); expect(mockQuotesHandler.processQuotes).not.toHaveBeenCalled(); }); it('should log error when an exception is thrown', () => { const message = { type: 'QUOTE_REQUEST' }; // Example message mockQuotesHandler.processQuotes.mockImplementation(() => { throw new Error('Processing error'); }); handler.handle(message); expect(mockLogger.error).toHaveBeenCalledWith(expect.stringContaining('ENGAGEMENT_INSURANCE_HANDLER_ERROR')); }); });
Editor is loading...
Leave a Comment