{"version":3,"file":"index.test.d.ts","sourceRoot":"","sources":["../src/index.test.ts"],"names":[],"mappings":"","sourcesContent":["import { assert, describe, it } from 'vitest';\n\nimport { escapeHtml, html } from './index.js';\n\ndescribe('html', () => {\n  it('escapes string value', () => {\n    assert.equal(html`<p>${'<script>'}</p>`.toString(), '<p>&lt;script&gt;</p>');\n  });\n\n  it('interpolates multiple values', () => {\n    assert.equal(html`<p>${'cats'} and ${'dogs'}</p>`.toString(), '<p>cats and dogs</p>');\n  });\n\n  it('interpolates a number', () => {\n    assert.equal(html`<p>${123}</p>`.toString(), '<p>123</p>');\n  });\n\n  it('interpolates a bigint', () => {\n    assert.equal(html`<p>${123n}</p>`.toString(), '<p>123</p>');\n  });\n\n  it('interpolates a boolean', () => {\n    assert.equal(html`<p>${true}</p>`.toString(), '<p>true</p>');\n    assert.equal(html`<p>${false}</p>`.toString(), '<p>false</p>');\n  });\n\n  it('escapes values when rendering array', () => {\n    const arr = ['cats>', '<dogs'];\n    assert.equal(\n      // prettier-ignore\n      html`<ul>${arr}</ul>`.toString(),\n      '<ul>cats&gt;&lt;dogs</ul>',\n    );\n  });\n\n  it('does not double-escape values when rendering array', () => {\n    const arr = ['cats', 'dogs'];\n    assert.equal(\n      // prettier-ignore\n      html`<ul>${arr.map((e) => html`<li>${e}</li>`)}</ul>`.toString(),\n      '<ul><li>cats</li><li>dogs</li></ul>',\n    );\n  });\n\n  it('errors when interpolating object', () => {\n    assert.throws(\n      // @ts-expect-error -- Testing runtime behavior of bad input.\n      () => html`<p>${{ foo: 'bar' }}</p>`.toString(),\n      'Cannot interpolate object in template',\n    );\n  });\n\n  it('omits nullish values from template', () => {\n    assert.equal(html`<p>${null}${undefined}</p>`.toString(), '<p></p>');\n  });\n});\n\ndescribe('escapeHtml', () => {\n  it('escapes rendered HTML', () => {\n    assert.equal(escapeHtml(html`<p>Hello</p>`).toString(), '&lt;p&gt;Hello&lt;/p&gt;');\n  });\n\n  it('works when nested inside html tag', () => {\n    assert.equal(html`a${escapeHtml(html`<p></p>`)}b`.toString(), 'a&lt;p&gt;&lt;/p&gt;b');\n  });\n});\n"]}