fix(settings): persist sessionRetentionAction through the settings sanitizer

This commit is contained in:
Gautam0507
2026-08-15 00:39:36 +05:30
parent 72cd861eb8
commit b15b20fe08
2 changed files with 38 additions and 0 deletions
@@ -466,4 +466,39 @@ describe('settings helpers', () => {
expect(sanitized.recentModels).toEqual(payload.recentModels);
});
});
describe('session retention settings persistence', () => {
it('round-trips sessionRetentionAction archive and delete through the sanitizer', () => {
const helpers = createTestHelpersWithRealSanitizers();
expect(helpers.sanitizeSettingsUpdate({ sessionRetentionAction: 'archive' })).toEqual({
sessionRetentionAction: 'archive',
});
expect(helpers.sanitizeSettingsUpdate({ sessionRetentionAction: 'delete' })).toEqual({
sessionRetentionAction: 'delete',
});
});
it('rejects invalid sessionRetentionAction values', () => {
const helpers = createTestHelpersWithRealSanitizers();
expect(helpers.sanitizeSettingsUpdate({ sessionRetentionAction: 'remove' })).toEqual({});
expect(helpers.sanitizeSettingsUpdate({ sessionRetentionAction: true })).toEqual({});
});
it('survives a full settings payload containing sessionRetentionAction (regression)', () => {
const helpers = createTestHelpersWithRealSanitizers();
const payload = {
autoDeleteEnabled: true,
autoDeleteAfterDays: 60,
sessionRetentionAction: 'delete',
};
const sanitized = helpers.sanitizeSettingsUpdate(payload);
expect(sanitized.autoDeleteEnabled).toBe(true);
expect(sanitized.autoDeleteAfterDays).toBe(60);
expect(sanitized.sessionRetentionAction).toBe('delete');
});
});
});