diff --git a/frontend/__tests__/routes/app-settings.test.tsx b/frontend/__tests__/routes/app-settings.test.tsx index 31b0f6b829..e7b189a33b 100644 --- a/frontend/__tests__/routes/app-settings.test.tsx +++ b/frontend/__tests__/routes/app-settings.test.tsx @@ -46,6 +46,21 @@ describe("Content", () => { }); }); + it("should render analytics toggle as enabled when server returns null (opt-in by default)", async () => { + const getSettingsSpy = vi.spyOn(SettingsService, "getSettings"); + getSettingsSpy.mockResolvedValue({ + ...MOCK_DEFAULT_USER_SETTINGS, + user_consents_to_analytics: null, + }); + + renderAppSettingsScreen(); + + await waitFor(() => { + const analytics = screen.getByTestId("enable-analytics-switch"); + expect(analytics).toBeChecked(); + }); + }); + it("should render the language options", async () => { renderAppSettingsScreen(); diff --git a/frontend/src/routes/app-settings.tsx b/frontend/src/routes/app-settings.tsx index 71d0230d5d..7d65365d17 100644 --- a/frontend/src/routes/app-settings.tsx +++ b/frontend/src/routes/app-settings.tsx @@ -125,7 +125,8 @@ function AppSettingsScreen() { }; const checkIfAnalyticsSwitchHasChanged = (checked: boolean) => { - const currentAnalytics = !!settings?.USER_CONSENTS_TO_ANALYTICS; + // Treat null as true since analytics is opt-in by default + const currentAnalytics = settings?.USER_CONSENTS_TO_ANALYTICS ?? true; setAnalyticsSwitchHasChanged(checked !== currentAnalytics); }; @@ -197,7 +198,7 @@ function AppSettingsScreen() { {t(I18nKey.ANALYTICS$SEND_ANONYMOUS_DATA)}