Skip to content

Commit 9052509

Browse files
committed
Merge branch 'accessibility-settings-7.6' into accessibility-settings-8_x
# Conflicts: # src/app/accessibility/accessibility-settings.service.spec.ts
2 parents fe4dcf0 + b55a318 commit 9052509

2 files changed

Lines changed: 34 additions & 2 deletions

File tree

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

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ import {
1818
ACCESSIBILITY_COOKIE,
1919
ACCESSIBILITY_SETTINGS_METADATA_KEY,
2020
AccessibilitySettings,
21-
AccessibilitySettingsService,
21+
AccessibilitySettingsService, AccessibilitySettingsFormValues, FullAccessibilitySettings,
2222
} from './accessibility-settings.service';
2323

2424

@@ -363,4 +363,27 @@ describe('accessibilitySettingsService', () => {
363363
});
364364
});
365365

366+
describe('convertFormValuesToStoredValues', () => {
367+
it('should reset the notificationTimeOut when timeOut is enabled but set to "0"', () => {
368+
const formValues: AccessibilitySettingsFormValues = {
369+
notificationTimeOutEnabled: true,
370+
notificationTimeOut: '0',
371+
liveRegionTimeOut: null,
372+
};
373+
374+
const storedValues: FullAccessibilitySettings = service.convertFormValuesToStoredValues(formValues);
375+
expect('notificationTimeOut' in storedValues).toBeFalse();
376+
});
377+
});
378+
379+
it('should keep the notificationTimeOut when timeOut is enabled and differs from "0"', () => {
380+
const formValues: AccessibilitySettingsFormValues = {
381+
notificationTimeOutEnabled: true,
382+
notificationTimeOut: '3',
383+
liveRegionTimeOut: null,
384+
};
385+
386+
const storedValues: FullAccessibilitySettings = service.convertFormValuesToStoredValues(formValues);
387+
expect('notificationTimeOut' in storedValues).toBeTrue();
388+
});
366389
});

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

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -260,11 +260,20 @@ export class AccessibilitySettingsService {
260260
* Convert values in the provided accessibility settings object to values ready to be stored.
261261
*/
262262
convertFormValuesToStoredValues(settings: AccessibilitySettingsFormValues): FullAccessibilitySettings {
263-
return {
263+
const storedValues = {
264264
notificationTimeOut: settings.notificationTimeOutEnabled ?
265265
secondsToMilliseconds(settings.notificationTimeOut) : '0',
266266
liveRegionTimeOut: secondsToMilliseconds(settings.liveRegionTimeOut),
267267
};
268+
269+
// When the user enables the timeout but does not change the timeout duration from 0,
270+
// it is removed from the values to be stored so the default value is used.
271+
// Keeping it at 0 would mean the notifications are not automatically removed.
272+
if (settings.notificationTimeOutEnabled && settings.notificationTimeOut === '0') {
273+
delete storedValues.notificationTimeOut;
274+
}
275+
276+
return storedValues;
268277
}
269278

270279
/**

0 commit comments

Comments
 (0)