Skip to content

Commit b55a318

Browse files
committed
119602: Reset notificationTimeOut when left on 0
1 parent c71c666 commit b55a318

File tree

2 files changed

+34
-2
lines changed

2 files changed

+34
-2
lines changed

src/app/accessibility/accessibility-settings.service.spec.ts

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import {
22
AccessibilitySettingsService,
33
AccessibilitySettings,
44
ACCESSIBILITY_SETTINGS_METADATA_KEY,
5-
ACCESSIBILITY_COOKIE
5+
ACCESSIBILITY_COOKIE, AccessibilitySettingsFormValues, FullAccessibilitySettings
66
} from './accessibility-settings.service';
77
import { CookieService } from '../core/services/cookie.service';
88
import { AuthService } from '../core/auth/auth.service';
@@ -356,4 +356,27 @@ describe('accessibilitySettingsService', () => {
356356
});
357357
});
358358

359+
describe('convertFormValuesToStoredValues', () => {
360+
it('should reset the notificationTimeOut when timeOut is enabled but set to "0"', () => {
361+
const formValues: AccessibilitySettingsFormValues = {
362+
notificationTimeOutEnabled: true,
363+
notificationTimeOut: '0',
364+
liveRegionTimeOut: null,
365+
};
366+
367+
const storedValues: FullAccessibilitySettings = service.convertFormValuesToStoredValues(formValues);
368+
expect('notificationTimeOut' in storedValues).toBeFalse();
369+
});
370+
});
371+
372+
it('should keep the notificationTimeOut when timeOut is enabled and differs from "0"', () => {
373+
const formValues: AccessibilitySettingsFormValues = {
374+
notificationTimeOutEnabled: true,
375+
notificationTimeOut: '3',
376+
liveRegionTimeOut: null,
377+
};
378+
379+
const storedValues: FullAccessibilitySettings = service.convertFormValuesToStoredValues(formValues);
380+
expect('notificationTimeOut' in storedValues).toBeTrue();
381+
});
359382
});

src/app/accessibility/accessibility-settings.service.ts

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -249,11 +249,20 @@ export class AccessibilitySettingsService {
249249
* Convert values in the provided accessibility settings object to values ready to be stored.
250250
*/
251251
convertFormValuesToStoredValues(settings: AccessibilitySettingsFormValues): FullAccessibilitySettings {
252-
return {
252+
const storedValues = {
253253
notificationTimeOut: settings.notificationTimeOutEnabled ?
254254
secondsToMilliseconds(settings.notificationTimeOut) : '0',
255255
liveRegionTimeOut: secondsToMilliseconds(settings.liveRegionTimeOut),
256256
};
257+
258+
// When the user enables the timeout but does not change the timeout duration from 0,
259+
// it is removed from the values to be stored so the default value is used.
260+
// Keeping it at 0 would mean the notifications are not automatically removed.
261+
if (settings.notificationTimeOutEnabled && settings.notificationTimeOut === '0') {
262+
delete storedValues.notificationTimeOut;
263+
}
264+
265+
return storedValues;
257266
}
258267

259268
/**

0 commit comments

Comments
 (0)