mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-08-24 08:16:51 -04:00
added fetch to jest
This commit is contained in:
@@ -189,7 +189,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
var url = type === 'service' ? `/daily_stats.json` : `/daily_stats_by_user.json`;
|
var url = type === 'service' ? `/daily_stats.json` : `/daily_stats_by_user.json`;
|
||||||
fetch(url)
|
return fetch(url)
|
||||||
.then(response => {
|
.then(response => {
|
||||||
if (!response.ok) {
|
if (!response.ok) {
|
||||||
throw new Error('Network response was not ok');
|
throw new Error('Network response was not ok');
|
||||||
@@ -214,6 +214,7 @@
|
|||||||
|
|
||||||
createChart('#weeklyChart', labels, deliveredData, failedData);
|
createChart('#weeklyChart', labels, deliveredData, failedData);
|
||||||
createTable('weeklyTable', 'activityChart', labels, deliveredData, failedData);
|
createTable('weeklyTable', 'activityChart', labels, deliveredData, failedData);
|
||||||
|
return data;
|
||||||
})
|
})
|
||||||
.catch(error => console.error('Error fetching daily stats:', error));
|
.catch(error => console.error('Error fetching daily stats:', error));
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ Object.defineProperty(HTMLElement.prototype, 'clientWidth', {
|
|||||||
beforeAll(done => {
|
beforeAll(done => {
|
||||||
// Set up the DOM with the D3 script included
|
// Set up the DOM with the D3 script included
|
||||||
document.body.innerHTML = `
|
document.body.innerHTML = `
|
||||||
<div id="activityChartContainer" data-daily-stats="{{ daily_stats }}" data-daily_stats_by_user="{{ daily_stats_by_user }}">
|
<div id="activityChartContainer"">
|
||||||
<form class="usa-form">
|
<form class="usa-form">
|
||||||
<label class="usa-label" for="options">Account</label>
|
<label class="usa-label" for="options">Account</label>
|
||||||
<select class="usa-select margin-bottom-2" name="options" id="options">
|
<select class="usa-select margin-bottom-2" name="options" id="options">
|
||||||
@@ -124,3 +124,26 @@ test('Check HTML content after chart creation', () => {
|
|||||||
expect(container.querySelector('svg')).not.toBeNull();
|
expect(container.querySelector('svg')).not.toBeNull();
|
||||||
expect(container.querySelectorAll('rect').length).toBeGreaterThan(0);
|
expect(container.querySelectorAll('rect').length).toBeGreaterThan(0);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test('Fetches data and creates chart and table correctly', async () => {
|
||||||
|
const mockResponse = {
|
||||||
|
'2024-07-01': { sms: { delivered: 50, failed: 5 } },
|
||||||
|
'2024-07-02': { sms: { delivered: 60, failed: 2 } },
|
||||||
|
'2024-07-03': { sms: { delivered: 70, failed: 1 } },
|
||||||
|
'2024-07-04': { sms: { delivered: 80, failed: 0 } },
|
||||||
|
'2024-07-05': { sms: { delivered: 90, failed: 3 } },
|
||||||
|
'2024-07-06': { sms: { delivered: 100, failed: 4 } },
|
||||||
|
'2024-07-07': { sms: { delivered: 110, failed: 2 } },
|
||||||
|
};
|
||||||
|
global.fetch = jest.fn(() =>
|
||||||
|
Promise.resolve({
|
||||||
|
ok: true,
|
||||||
|
json: () => Promise.resolve(mockResponse),
|
||||||
|
})
|
||||||
|
);
|
||||||
|
|
||||||
|
const data = await fetchData('service');
|
||||||
|
|
||||||
|
expect(global.fetch).toHaveBeenCalledWith('/daily_stats.json');
|
||||||
|
expect(data).toEqual(mockResponse);
|
||||||
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user