// 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 = `
Old message
File upload successful `; // 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 jest.advanceTimersByTime(300); const srRegion = document.getElementById('upload-status-live'); expect(srRegion.textContent).toBe('File upload successful\u00A0'); });