mirror of
https://github.com/bulwarkmail/webmail.git
synced 2026-11-03 16:16:59 +00:00
fix: keep inserting signatures for existing users by default #1493
This commit is contained in:
@@ -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');
|
||||
|
||||
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user