Some checks failed
Lock Threads / action (push) Has been cancelled
Mark stale issues and pull requests / stale (push) Has been cancelled
Publish Chatwoot EE docker images / build (linux/amd64, ubuntu-latest) (push) Has been cancelled
Publish Chatwoot EE docker images / build (linux/arm64, ubuntu-22.04-arm) (push) Has been cancelled
Publish Chatwoot EE docker images / merge (push) Has been cancelled
Publish Chatwoot CE docker images / build (linux/amd64, ubuntu-latest) (push) Has been cancelled
Publish Chatwoot CE docker images / build (linux/arm64, ubuntu-22.04-arm) (push) Has been cancelled
Publish Chatwoot CE docker images / merge (push) Has been cancelled
Run Chatwoot CE spec / lint-backend (push) Has been cancelled
Run Chatwoot CE spec / lint-frontend (push) Has been cancelled
Run Chatwoot CE spec / frontend-tests (push) Has been cancelled
Run Chatwoot CE spec / backend-tests (0, 16) (push) Has been cancelled
Run Chatwoot CE spec / backend-tests (1, 16) (push) Has been cancelled
Run Chatwoot CE spec / backend-tests (10, 16) (push) Has been cancelled
Run Chatwoot CE spec / backend-tests (11, 16) (push) Has been cancelled
Run Chatwoot CE spec / backend-tests (12, 16) (push) Has been cancelled
Run Chatwoot CE spec / backend-tests (13, 16) (push) Has been cancelled
Run Chatwoot CE spec / backend-tests (14, 16) (push) Has been cancelled
Run Chatwoot CE spec / backend-tests (15, 16) (push) Has been cancelled
Run Chatwoot CE spec / backend-tests (2, 16) (push) Has been cancelled
Run Chatwoot CE spec / backend-tests (3, 16) (push) Has been cancelled
Run Chatwoot CE spec / backend-tests (4, 16) (push) Has been cancelled
Run Chatwoot CE spec / backend-tests (5, 16) (push) Has been cancelled
Run Chatwoot CE spec / backend-tests (6, 16) (push) Has been cancelled
Run Chatwoot CE spec / backend-tests (7, 16) (push) Has been cancelled
Run Chatwoot CE spec / backend-tests (8, 16) (push) Has been cancelled
Run Chatwoot CE spec / backend-tests (9, 16) (push) Has been cancelled
Run Linux nightly installer / nightly (push) Has been cancelled
- Add Logistics component with progress tracking - Add OrderDetail component for order information - Support data-driven steps and actions - Add blue color scale to widget SCSS - Fix node overflow and progress bar rendering issues - Add English translations for dashboard components Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
162 lines
4.4 KiB
JavaScript
162 lines
4.4 KiB
JavaScript
import reportsAPI from '../reports';
|
|
import ApiClient from '../ApiClient';
|
|
|
|
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');
|
|
});
|
|
describe('API calls', () => {
|
|
const originalAxios = window.axios;
|
|
const axiosMock = {
|
|
post: vi.fn(() => Promise.resolve()),
|
|
get: vi.fn(() => Promise.resolve()),
|
|
patch: vi.fn(() => Promise.resolve()),
|
|
delete: vi.fn(() => Promise.resolve()),
|
|
};
|
|
|
|
beforeEach(() => {
|
|
window.axios = axiosMock;
|
|
});
|
|
|
|
afterEach(() => {
|
|
window.axios = originalAxios;
|
|
});
|
|
|
|
it('#getAccountReports', () => {
|
|
reportsAPI.getReports({
|
|
metric: 'conversations_count',
|
|
from: 1621103400,
|
|
to: 1621621800,
|
|
});
|
|
expect(axiosMock.get).toHaveBeenCalledWith('/api/v2/reports', {
|
|
params: {
|
|
metric: 'conversations_count',
|
|
since: 1621103400,
|
|
until: 1621621800,
|
|
type: 'account',
|
|
timezone_offset: -0,
|
|
},
|
|
});
|
|
});
|
|
|
|
it('#getAccountSummary', () => {
|
|
reportsAPI.getSummary(1621103400, 1621621800);
|
|
expect(axiosMock.get).toHaveBeenCalledWith('/api/v2/reports/summary', {
|
|
params: {
|
|
business_hours: undefined,
|
|
group_by: undefined,
|
|
id: undefined,
|
|
since: 1621103400,
|
|
timezone_offset: -0,
|
|
type: 'account',
|
|
until: 1621621800,
|
|
},
|
|
});
|
|
});
|
|
|
|
it('#getAgentReports', () => {
|
|
reportsAPI.getAgentReports({
|
|
from: 1621103400,
|
|
to: 1621621800,
|
|
businessHours: true,
|
|
});
|
|
expect(axiosMock.get).toHaveBeenCalledWith('/api/v2/reports/agents', {
|
|
params: {
|
|
since: 1621103400,
|
|
until: 1621621800,
|
|
business_hours: true,
|
|
},
|
|
});
|
|
});
|
|
|
|
it('#getLabelReports', () => {
|
|
reportsAPI.getLabelReports({ from: 1621103400, to: 1621621800 });
|
|
expect(axiosMock.get).toHaveBeenCalledWith('/api/v2/reports/labels', {
|
|
params: {
|
|
since: 1621103400,
|
|
until: 1621621800,
|
|
},
|
|
});
|
|
});
|
|
|
|
it('#getInboxReports', () => {
|
|
reportsAPI.getInboxReports({ from: 1621103400, to: 1621621800 });
|
|
expect(axiosMock.get).toHaveBeenCalledWith('/api/v2/reports/inboxes', {
|
|
params: {
|
|
since: 1621103400,
|
|
until: 1621621800,
|
|
},
|
|
});
|
|
});
|
|
|
|
it('#getTeamReports', () => {
|
|
reportsAPI.getTeamReports({ from: 1621103400, to: 1621621800 });
|
|
expect(axiosMock.get).toHaveBeenCalledWith('/api/v2/reports/teams', {
|
|
params: {
|
|
since: 1621103400,
|
|
until: 1621621800,
|
|
},
|
|
});
|
|
});
|
|
|
|
it('#getBotMetrics', () => {
|
|
reportsAPI.getBotMetrics({ from: 1621103400, to: 1621621800 });
|
|
expect(axiosMock.get).toHaveBeenCalledWith(
|
|
'/api/v2/reports/bot_metrics',
|
|
{
|
|
params: {
|
|
since: 1621103400,
|
|
until: 1621621800,
|
|
},
|
|
}
|
|
);
|
|
});
|
|
|
|
it('#getBotSummary', () => {
|
|
reportsAPI.getBotSummary({
|
|
from: 1621103400,
|
|
to: 1621621800,
|
|
groupBy: 'date',
|
|
businessHours: true,
|
|
});
|
|
expect(axiosMock.get).toHaveBeenCalledWith(
|
|
'/api/v2/reports/bot_summary',
|
|
{
|
|
params: {
|
|
since: 1621103400,
|
|
until: 1621621800,
|
|
type: 'account',
|
|
group_by: 'date',
|
|
business_hours: true,
|
|
},
|
|
}
|
|
);
|
|
});
|
|
|
|
it('#getConversationMetric', () => {
|
|
reportsAPI.getConversationMetric('account');
|
|
expect(axiosMock.get).toHaveBeenCalledWith(
|
|
'/api/v2/reports/conversations',
|
|
{
|
|
params: {
|
|
type: 'account',
|
|
page: 1,
|
|
},
|
|
}
|
|
);
|
|
});
|
|
});
|
|
});
|