mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-09-11 10:28:41 -04:00
Changing alert back to a focus and fixing tests
This commit is contained in:
@@ -10,11 +10,13 @@ function announceUploadStatusFromElement() {
|
|||||||
if (message) {
|
if (message) {
|
||||||
srRegion.textContent = '';
|
srRegion.textContent = '';
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
srRegion.textContent = message;
|
srRegion.textContent = message + '\u00A0'; // add a non-breaking space
|
||||||
}, 50);
|
srRegion.focus(); // Optional
|
||||||
|
}, 300);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// Exported for use in tests
|
// Exported for use in tests
|
||||||
function initUploadStatusAnnouncer() {
|
function initUploadStatusAnnouncer() {
|
||||||
document.addEventListener('DOMContentLoaded', () => {
|
document.addEventListener('DOMContentLoaded', () => {
|
||||||
|
|||||||
@@ -14,6 +14,7 @@
|
|||||||
<div id="upload-status-live"
|
<div id="upload-status-live"
|
||||||
class="usa-sr-only"
|
class="usa-sr-only"
|
||||||
aria-live="assertive"
|
aria-live="assertive"
|
||||||
|
tabindex="-1"
|
||||||
role="status">
|
role="status">
|
||||||
</div>
|
</div>
|
||||||
<script nonce="{{ csp_nonce() }}">document.body.className = ((document.body.className) ? document.body.className + ' js-enabled' : 'js-enabled');</script>
|
<script nonce="{{ csp_nonce() }}">document.body.className = ((document.body.className) ? document.body.className + ' js-enabled' : 'js-enabled');</script>
|
||||||
|
|||||||
@@ -19,8 +19,8 @@ test('writes upload message to the live region on DOMContentLoaded', () => {
|
|||||||
document.dispatchEvent(new Event('DOMContentLoaded'));
|
document.dispatchEvent(new Event('DOMContentLoaded'));
|
||||||
|
|
||||||
// Live region will be cleared first, then updated
|
// Live region will be cleared first, then updated
|
||||||
jest.advanceTimersByTime(50);
|
jest.advanceTimersByTime(300);
|
||||||
|
|
||||||
const srRegion = document.getElementById('upload-status-live');
|
const srRegion = document.getElementById('upload-status-live');
|
||||||
expect(srRegion.textContent).toBe('File upload successful');
|
expect(srRegion.textContent).toBe('File upload successful\u00A0');
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -146,10 +146,10 @@ describe('announceUploadStatusFromElement', () => {
|
|||||||
expect(srRegion.textContent).toBe('');
|
expect(srRegion.textContent).toBe('');
|
||||||
|
|
||||||
// Fast-forward the timer
|
// Fast-forward the timer
|
||||||
jest.advanceTimersByTime(50);
|
jest.advanceTimersByTime(300);
|
||||||
|
|
||||||
// Confirm it updates after delay
|
// Confirm it updates after delay
|
||||||
expect(srRegion.textContent).toBe('File upload failed');
|
expect(srRegion.textContent).toBe('File upload failed\u00A0');
|
||||||
});
|
});
|
||||||
|
|
||||||
test('announces success message from #upload-success if no error is present', () => {
|
test('announces success message from #upload-success if no error is present', () => {
|
||||||
@@ -163,9 +163,9 @@ describe('announceUploadStatusFromElement', () => {
|
|||||||
|
|
||||||
expect(srRegion.textContent).toBe('');
|
expect(srRegion.textContent).toBe('');
|
||||||
|
|
||||||
jest.advanceTimersByTime(50);
|
jest.advanceTimersByTime(301);
|
||||||
|
|
||||||
expect(srRegion.textContent).toBe('File upload successful');
|
expect(srRegion.textContent).toBe('File upload successful\u00A0');
|
||||||
});
|
});
|
||||||
|
|
||||||
test('does nothing if neither success nor error is present', () => {
|
test('does nothing if neither success nor error is present', () => {
|
||||||
@@ -178,7 +178,7 @@ describe('announceUploadStatusFromElement', () => {
|
|||||||
// Should not clear or update if no message element is found
|
// Should not clear or update if no message element is found
|
||||||
expect(srRegion.textContent).toBe('Old message');
|
expect(srRegion.textContent).toBe('Old message');
|
||||||
|
|
||||||
jest.advanceTimersByTime(50);
|
jest.advanceTimersByTime(300);
|
||||||
|
|
||||||
// Still unchanged
|
// Still unchanged
|
||||||
expect(srRegion.textContent).toBe('Old message');
|
expect(srRegion.textContent).toBe('Old message');
|
||||||
|
|||||||
Reference in New Issue
Block a user