qwen_2.5_model / src /common /utils /template-render.spec.ts
Muhammad Noman
Deploy OpenWA to Hugging Face Spaces
46252cd
Raw
History Blame Contribute Delete
2.07 kB
import { renderTemplate } from './template-render';
describe('renderTemplate', () => {
describe('canonical double-brace {{name}}', () => {
it('substitutes a known placeholder', () => {
expect(renderTemplate('Hi {{name}}', { name: 'Sam' })).toBe('Hi Sam');
});
it('tolerates surrounding whitespace', () => {
expect(renderTemplate('Hi {{ name }}', { name: 'Sam' })).toBe('Hi Sam');
});
it('supports dotted/dashed keys', () => {
expect(renderTemplate('{{first.name}}-{{order-id}}', { 'first.name': 'A', 'order-id': '7' })).toBe('A-7');
});
it('leaves an unknown placeholder literal', () => {
expect(renderTemplate('Hi {{name}}', {})).toBe('Hi {{name}}');
});
});
describe('legacy single-brace {name} (deprecated, still supported)', () => {
it('substitutes a known placeholder', () => {
expect(renderTemplate('Hi {name}', { name: 'Sam' })).toBe('Hi Sam');
});
it('leaves an unknown placeholder literal', () => {
expect(renderTemplate('Hi {name}', {})).toBe('Hi {name}');
});
});
describe('mixed + disambiguation', () => {
it('substitutes both conventions in one string', () => {
expect(renderTemplate('{greeting}, {{name}}!', { greeting: 'Hello', name: 'Sam' })).toBe('Hello, Sam!');
});
it('does NOT mangle {{name}} into {value} (double-brace consumed as a unit)', () => {
expect(renderTemplate('{{name}}', { name: 'X' })).toBe('X');
});
});
describe('edge cases', () => {
it('returns an empty body unchanged', () => {
expect(renderTemplate('', { name: 'Sam' })).toBe('');
});
it('leaves non-placeholder braces untouched', () => {
expect(renderTemplate('a { b } c', { b: 'X' })).toBe('a { b } c'); // spaces => not a legacy placeholder
});
it('substitutes an explicitly-provided empty-string value', () => {
// hasOwnProperty semantics: an explicit '' substitutes to '' (the legacy `||` renderer left it literal).
expect(renderTemplate('[{name}]', { name: '' })).toBe('[]');
});
});
});