import reportsAPI from '../reports'; import ApiClient from '../ApiClient'; import describeWithAPIMock from './apiSpecHelper'; describe('#Reports API', () => { it('creates correct instance', () => { expect(reportsAPI).toBeInstanceOf(ApiClient); expect(reportsAPI.apiVersion).toBe('/api/v2'); expect(reportsAPI).toHaveProperty('get'); expect(reportsAPI).toHaveProperty('show'); expect(reportsAPI).toHaveProperty('create'); expect(reportsAPI).toHaveProperty('update'); expect(reportsAPI).toHaveProperty('delete'); expect(reportsAPI).toHaveProperty('getReports'); expect(reportsAPI).toHaveProperty('getSummary'); expect(reportsAPI).toHaveProperty('getAgentReports'); expect(reportsAPI).toHaveProperty('getLabelReports'); expect(reportsAPI).toHaveProperty('getInboxReports'); expect(reportsAPI).toHaveProperty('getTeamReports'); }); describeWithAPIMock('API calls', context => { it('#getAccountReports', () => { reportsAPI.getReports('conversations_count', 1621103400, 1621621800); expect(context.axiosMock.get).toHaveBeenCalledWith('/api/v2/reports', { params: { metric: 'conversations_count', since: 1621103400, until: 1621621800, type: 'account', }, }); }); it('#getAccountSummary', () => { reportsAPI.getSummary(1621103400, 1621621800); expect(context.axiosMock.get).toHaveBeenCalledWith( '/api/v2/reports/summary', { params: { since: 1621103400, until: 1621621800, type: 'account', }, } ); }); it('#getAgentReports', () => { reportsAPI.getAgentReports(1621103400, 1621621800); expect(context.axiosMock.get).toHaveBeenCalledWith( '/api/v2/reports/agents', { params: { since: 1621103400, until: 1621621800, }, } ); }); it('#getLabelReports', () => { reportsAPI.getLabelReports(1621103400, 1621621800); expect(context.axiosMock.get).toHaveBeenCalledWith( '/api/v2/reports/labels', { params: { since: 1621103400, until: 1621621800, }, } ); }); it('#getInboxReports', () => { reportsAPI.getInboxReports(1621103400, 1621621800); expect(context.axiosMock.get).toHaveBeenCalledWith( '/api/v2/reports/inboxes', { params: { since: 1621103400, until: 1621621800, }, } ); }); it('#getTeamReports', () => { reportsAPI.getTeamReports(1621103400, 1621621800); expect(context.axiosMock.get).toHaveBeenCalledWith( '/api/v2/reports/teams', { params: { since: 1621103400, until: 1621621800, }, } ); }); }); });