fix: keep inserting signatures for existing users by default #1493

This commit is contained in:
Linus Rath
2026-11-02 20:14:48 +01:00
parent 1f8b1f4533
commit 52330cbd07
2 changed files with 30 additions and 7 deletions
+26 -5
View File
@@ -52,20 +52,41 @@ describe('settings sync debounce', () => {
});
});
it('defaults the signature auto-insert toggles and the separator to off, and exports all three', () => {
it('defaults the signature auto-insert toggles to on and exports them', () => {
const settings = useSettingsStore.getState();
expect(settings.signatureNewMailEnabled).toBe(false);
expect(settings.signatureReplyForwardEnabled).toBe(false);
expect(settings.signatureNewMailEnabled).toBe(true);
expect(settings.signatureReplyForwardEnabled).toBe(true);
expect(settings.signatureSeparatorEnabled).toBe(false);
const exported = JSON.parse(settings.exportSettings()) as Record<string, unknown>;
expect(exported).toMatchObject({
signatureNewMailEnabled: false,
signatureReplyForwardEnabled: false,
signatureNewMailEnabled: true,
signatureReplyForwardEnabled: true,
signatureSeparatorEnabled: false,
});
});
it('keeps inserting the signature for users whose saved settings predate the toggles', async () => {
useSettingsStore.getState().resetToDefaults();
// Saved by a build without the toggles: the keys are missing.
localStorage.setItem('settings-storage', JSON.stringify({
state: { signaturePosition: 'below_quote', signatureSeparatorEnabled: true },
version: 12,
}));
await useSettingsStore.persist.rehydrate();
expect(useSettingsStore.getState().signatureNewMailEnabled).toBe(true);
expect(useSettingsStore.getState().signatureReplyForwardEnabled).toBe(true);
// A server copy written by such a build has no toggles either.
useSettingsStore.getState().importSettings(
JSON.stringify({ signaturePosition: 'above_quote' }),
{ serverAccountId: 'a@example.com' },
);
expect(useSettingsStore.getState().signatureNewMailEnabled).toBe(true);
expect(useSettingsStore.getState().signatureReplyForwardEnabled).toBe(true);
localStorage.removeItem('settings-storage');
});
it('does not rewrite a pending account snapshot after another account becomes active', async () => {
const settings = useSettingsStore.getState();
settings.enableSync('a@example.com', 'https://mail-a.example.com');
+4 -2
View File
@@ -932,8 +932,10 @@ const DEFAULT_SETTINGS = {
subAddressDelimiter: DEFAULT_SUB_ADDRESS_DELIMITER,
sendDelaySeconds: 0 as SendDelaySeconds,
signaturePosition: 'below_quote' as SignaturePosition,
signatureNewMailEnabled: false,
signatureReplyForwardEnabled: false,
// On, as before the toggles existed: saved settings and server copies
// from older builds lack these keys and fall back to this default.
signatureNewMailEnabled: true,
signatureReplyForwardEnabled: true,
signatureSeparatorEnabled: false,
signatureDetails: EMPTY_SIGNATURE_DETAILS,
requestReadReceiptDefault: false,