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

This commit is contained in:
Andreas Awouters
2025-01-22 15:50:41 +01:00
2 changed files with 34 additions and 2 deletions

View File

@@ -2,7 +2,7 @@ import {
AccessibilitySettingsService, AccessibilitySettingsService,
AccessibilitySettings, AccessibilitySettings,
ACCESSIBILITY_SETTINGS_METADATA_KEY, ACCESSIBILITY_SETTINGS_METADATA_KEY,
ACCESSIBILITY_COOKIE ACCESSIBILITY_COOKIE, AccessibilitySettingsFormValues, FullAccessibilitySettings
} from './accessibility-settings.service'; } from './accessibility-settings.service';
import { CookieService } from '../core/services/cookie.service'; import { CookieService } from '../core/services/cookie.service';
import { AuthService } from '../core/auth/auth.service'; import { AuthService } from '../core/auth/auth.service';
@@ -356,4 +356,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

@@ -249,11 +249,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;
} }
/** /**