import MetricsManager from '../../../../../src/metrics/MetricsManager'; import routingAgent from '../../../../../src/services/agent'; import AqmReqs from '../../../../../src/services/core/aqm-reqs'; jest.mock('../../../../../src/services/core/Utils', () => ({ createErrDetailsObject: jest.fn(), getRoutingHost: jest.fn(), })); jest.mock('../../../../../src/services/core/aqm-reqs'); describe('AQM routing agent', () => { let fakeAqm: jest.Mocked; let fakeMetricsManager: jest.Mocked; let agent: ReturnType; beforeEach(() => { jest.clearAllMocks(); fakeAqm = new AqmReqs() as jest.Mocked; fakeAqm.reqEmpty = jest.fn().mockImplementation((fn) => fn); fakeAqm.req = jest.fn().mockImplementation((fn) => fn); fakeMetricsManager = { trackEvent: jest.fn() } as unknown as jest.Mocked; fakeMetricsManager.trackEvent = jest.fn(); agent = routingAgent(fakeAqm); }); it('logout', async () => { const reqSpy = jest.spyOn(fakeAqm, 'reqEmpty'); reqSpy.mockRejectedValue(new Error('dasd')); const req = await agent.logout({data: {logoutReason: 'User requested logout'}}); expect(req).toBeDefined(); expect(reqSpy).toHaveBeenCalled(); }); it('reload', async () => { const reqSpy = jest.spyOn(fakeAqm, 'reqEmpty'); const req = await agent.reload(); expect(req).toBeDefined(); expect(reqSpy).toHaveBeenCalled(); }); it('stationLogin', async () => { const reqSpy = jest.spyOn(fakeAqm, 'req'); const req = await agent.stationLogin({data: {} as any}); expect(req).toBeDefined(); expect(reqSpy).toHaveBeenCalled(); }); it('stateChange', async () => { const reqSpy = jest.spyOn(fakeAqm, 'req'); const req = await agent.stateChange({data: {} as any}); expect(req).toBeDefined(); expect(reqSpy).toHaveBeenCalled(); }); it('buddyAgents', async () => { const reqSpy = jest.spyOn(fakeAqm, 'req'); const req = await agent.buddyAgents({data: {} as any}); expect(req).toBeDefined(); expect(reqSpy).toHaveBeenCalled(); }); });