2025-04-01 13:03:12 -04:00
|
|
|
// This will use the real function and listener
|
|
|
|
|
const {
|
|
|
|
|
initUploadStatusAnnouncer
|
|
|
|
|
} = require('../../app/assets/javascripts/fileUpload.js');
|
|
|
|
|
|
|
|
|
|
jest.useFakeTimers();
|
|
|
|
|
|
|
|
|
|
test('writes upload message to the live region on DOMContentLoaded', () => {
|
|
|
|
|
// Setup the DOM
|
|
|
|
|
document.body.innerHTML = `
|
|
|
|
|
<div id="upload-status-live" aria-live="assertive" role="status" class="usa-sr-only">Old message</div>
|
|
|
|
|
<span id="upload-success" class="usa-sr-only">File upload successful</span>
|
|
|
|
|
`;
|
|
|
|
|
|
|
|
|
|
// Register the listener (same as page load does)
|
|
|
|
|
initUploadStatusAnnouncer();
|
|
|
|
|
|
|
|
|
|
// Simulate the page load event
|
|
|
|
|
document.dispatchEvent(new Event('DOMContentLoaded'));
|
|
|
|
|
|
|
|
|
|
// Live region will be cleared first, then updated
|
2025-04-02 11:39:07 -04:00
|
|
|
jest.advanceTimersByTime(300);
|
2025-04-01 13:03:12 -04:00
|
|
|
|
|
|
|
|
const srRegion = document.getElementById('upload-status-live');
|
2025-04-02 11:39:07 -04:00
|
|
|
expect(srRegion.textContent).toBe('File upload successful\u00A0');
|
2025-04-01 13:03:12 -04:00
|
|
|
});
|