Fix: keep signature when inserting a template #621
This commit is contained in:
@@ -10,6 +10,7 @@ import {
|
||||
filterTemplates,
|
||||
exportTemplates,
|
||||
importTemplates,
|
||||
spliceTemplateAboveSignature,
|
||||
} from '../template-utils';
|
||||
import type { EmailTemplate } from '../template-types';
|
||||
|
||||
@@ -333,3 +334,39 @@ describe('filterTemplates', () => {
|
||||
expect(filterTemplates(templates, 'xyz')).toHaveLength(0);
|
||||
});
|
||||
});
|
||||
|
||||
describe('spliceTemplateAboveSignature', () => {
|
||||
const template = '<p>Template body</p>';
|
||||
|
||||
it('keeps the signature block below the template (separator marker)', () => {
|
||||
const prev = '<p></p><p data-signature-block="separator">-- </p><div>My signature</div><p data-signature-block="end"></p>';
|
||||
expect(spliceTemplateAboveSignature(prev, template)).toBe(
|
||||
'<p>Template body</p><p data-signature-block="separator">-- </p><div>My signature</div><p data-signature-block="end"></p>'
|
||||
);
|
||||
});
|
||||
|
||||
it('keeps the signature block below the template (start marker, no separator)', () => {
|
||||
const prev = '<p>old draft text</p><p data-signature-block="start"></p><div>My signature</div><p data-signature-block="end"></p>';
|
||||
expect(spliceTemplateAboveSignature(prev, template)).toBe(
|
||||
'<p>Template body</p><p data-signature-block="start"></p><div>My signature</div><p data-signature-block="end"></p>'
|
||||
);
|
||||
});
|
||||
|
||||
it('replaces the whole body when there is no signature block', () => {
|
||||
expect(spliceTemplateAboveSignature('<p>old draft text</p>', template)).toBe(template);
|
||||
});
|
||||
|
||||
it('keeps everything from the start marker onward when the end marker is missing', () => {
|
||||
const prev = '<p>old</p><p data-signature-block="separator">-- </p><div>My signature</div>';
|
||||
expect(spliceTemplateAboveSignature(prev, template)).toBe(
|
||||
'<p>Template body</p><p data-signature-block="separator">-- </p><div>My signature</div>'
|
||||
);
|
||||
});
|
||||
|
||||
it('discards user edits above the signature', () => {
|
||||
const prev = '<p>half-written draft</p><p data-signature-block="separator">-- </p><div>Sig</div><p data-signature-block="end"></p>';
|
||||
const result = spliceTemplateAboveSignature(prev, template);
|
||||
expect(result).not.toContain('half-written draft');
|
||||
expect(result).toContain('Sig');
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user