render.test.mjs 600 Bytes
import { test } from 'node:test'
import assert from 'node:assert/strict'
import { render } from './render.mjs'

test('replaces placeholders', () => {
  assert.equal(render('Hi {{name}}', { name: 'Al' }), 'Hi Al')
})
test('value containing $ and braces is inserted literally', () => {
  assert.equal(render('v={{x}}', { x: '${FOO} a{b}c }}' }), 'v=${FOO} a{b}c }}')
})
test('strips HTML comments used as template guides', () => {
  assert.equal(render('a<!-- note -->b', {}), 'ab')
})
test('missing key throws (no silent blank)', () => {
  assert.throws(() => render('{{missing}}', {}), /missing/)
})