Merge branch 'accessibility-settings-7.6' into accessibility-settings-8_x

# Conflicts:
#	src/app/accessibility/accessibility-settings.service.spec.ts
This commit is contained in:
Andreas Awouters
2025-01-22 16:08:24 +01:00
2 changed files with 34 additions and 2 deletions

View File

@@ -18,7 +18,7 @@ import {
ACCESSIBILITY_COOKIE, ACCESSIBILITY_COOKIE,
ACCESSIBILITY_SETTINGS_METADATA_KEY, ACCESSIBILITY_SETTINGS_METADATA_KEY,
AccessibilitySettings, AccessibilitySettings,
AccessibilitySettingsService, AccessibilitySettingsService, AccessibilitySettingsFormValues, FullAccessibilitySettings,
} from './accessibility-settings.service'; } from './accessibility-settings.service';
@@ -363,4 +363,27 @@ describe('accessibilitySettingsService', () => {
}); });
}); });
describe('convertFormValuesToStoredValues', () => {
it('should reset the notificationTimeOut when timeOut is enabled but set to "0"', () => {
const formValues: AccessibilitySettingsFormValues = {
notificationTimeOutEnabled: true,
notificationTimeOut: '0',
liveRegionTimeOut: null,
};
const storedValues: FullAccessibilitySettings = service.convertFormValuesToStoredValues(formValues);
expect('notificationTimeOut' in storedValues).toBeFalse();
});
});
it('should keep the notificationTimeOut when timeOut is enabled and differs from "0"', () => {
const formValues: AccessibilitySettingsFormValues = {
notificationTimeOutEnabled: true,
notificationTimeOut: '3',
liveRegionTimeOut: null,
};
const storedValues: FullAccessibilitySettings = service.convertFormValuesToStoredValues(formValues);
expect('notificationTimeOut' in storedValues).toBeTrue();
});
}); });

View File

@@ -260,11 +260,20 @@ export class AccessibilitySettingsService {
* Convert values in the provided accessibility settings object to values ready to be stored. * Convert values in the provided accessibility settings object to values ready to be stored.
*/ */
convertFormValuesToStoredValues(settings: AccessibilitySettingsFormValues): FullAccessibilitySettings { convertFormValuesToStoredValues(settings: AccessibilitySettingsFormValues): FullAccessibilitySettings {
return { const storedValues = {
notificationTimeOut: settings.notificationTimeOutEnabled ? notificationTimeOut: settings.notificationTimeOutEnabled ?
secondsToMilliseconds(settings.notificationTimeOut) : '0', secondsToMilliseconds(settings.notificationTimeOut) : '0',
liveRegionTimeOut: secondsToMilliseconds(settings.liveRegionTimeOut), liveRegionTimeOut: secondsToMilliseconds(settings.liveRegionTimeOut),
}; };
// When the user enables the timeout but does not change the timeout duration from 0,
// it is removed from the values to be stored so the default value is used.
// Keeping it at 0 would mean the notifications are not automatically removed.
if (settings.notificationTimeOutEnabled && settings.notificationTimeOut === '0') {
delete storedValues.notificationTimeOut;
}
return storedValues;
} }
/** /**