import { SMSSenderService } from './smsSender.service'; import { SMSSenderFactory } from './smsSenderFactory.service'; jest.mock('./smsSenderFactory.service'); describe('SMSSenderService', () => { describe('checkStatus', () => { afterEach(() => { jest.clearAllMocks(); }); it('should return true when getSMSSender resolves', async () => { (SMSSenderFactory.getSMSSender as jest.Mock).mockResolvedValue({ send: jest.fn(), }); const result = await SMSSenderService.checkStatus(); expect(result).toBe(true); expect(SMSSenderFactory.getSMSSender).toHaveBeenCalled(); }); it('should return false when getSMSSender rejects', async () => { (SMSSenderFactory.getSMSSender as jest.Mock).mockRejectedValue( new Error('Provider error'), ); const result = await SMSSenderService.checkStatus(); expect(result).toBe(false); expect(SMSSenderFactory.getSMSSender).toHaveBeenCalled(); }); }); });