From b55a3186763e863033e567043530782c1bea71da Mon Sep 17 00:00:00 2001 From: Andreas Awouters Date: Wed, 22 Jan 2025 15:47:13 +0100 Subject: [PATCH] 119602: Reset notificationTimeOut when left on 0 --- .../accessibility-settings.service.spec.ts | 25 ++++++++++++++++++- .../accessibility-settings.service.ts | 11 +++++++- 2 files changed, 34 insertions(+), 2 deletions(-) diff --git a/src/app/accessibility/accessibility-settings.service.spec.ts b/src/app/accessibility/accessibility-settings.service.spec.ts index 3d58c02d10..4c72063494 100644 --- a/src/app/accessibility/accessibility-settings.service.spec.ts +++ b/src/app/accessibility/accessibility-settings.service.spec.ts @@ -2,7 +2,7 @@ import { AccessibilitySettingsService, AccessibilitySettings, ACCESSIBILITY_SETTINGS_METADATA_KEY, - ACCESSIBILITY_COOKIE + ACCESSIBILITY_COOKIE, AccessibilitySettingsFormValues, FullAccessibilitySettings } from './accessibility-settings.service'; import { CookieService } from '../core/services/cookie.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(); + }); }); diff --git a/src/app/accessibility/accessibility-settings.service.ts b/src/app/accessibility/accessibility-settings.service.ts index 813bccd470..fc8876619d 100644 --- a/src/app/accessibility/accessibility-settings.service.ts +++ b/src/app/accessibility/accessibility-settings.service.ts @@ -249,11 +249,20 @@ export class AccessibilitySettingsService { * Convert values in the provided accessibility settings object to values ready to be stored. */ convertFormValuesToStoredValues(settings: AccessibilitySettingsFormValues): FullAccessibilitySettings { - return { + const storedValues = { notificationTimeOut: settings.notificationTimeOutEnabled ? secondsToMilliseconds(settings.notificationTimeOut) : '0', 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; } /**