{
  "schema": "https://bars.commonsware.com/conformance/schema/render-fixture.schema.json",
  "version": "0.1.0",
  "cases": [
    {
      "name": "html-escape-ampersand",
      "description": "{{ }} escapes & to &amp; (covers the '&' branch of escapeHTML).",
      "template": "{{ /s }}",
      "context": {
        "s": "a&b"
      },
      "expect": {
        "kind": "output",
        "expectedOutput": "a&amp;b"
      }
    },
    {
      "name": "html-escape-less-than",
      "description": "{{ }} escapes < to &lt; (covers the '<' branch of escapeHTML).",
      "template": "{{ /s }}",
      "context": {
        "s": "a<b"
      },
      "expect": {
        "kind": "output",
        "expectedOutput": "a&lt;b"
      }
    },
    {
      "name": "html-escape-greater-than",
      "description": "{{ }} escapes > to &gt; (covers the '>' branch of escapeHTML).",
      "template": "{{ /s }}",
      "context": {
        "s": "a>b"
      },
      "expect": {
        "kind": "output",
        "expectedOutput": "a&gt;b"
      }
    },
    {
      "name": "html-escape-double-quote",
      "description": "{{ }} escapes \" to &quot; (covers the '\"' branch of escapeHTML).",
      "template": "{{ /s }}",
      "context": {
        "s": "a\"b"
      },
      "expect": {
        "kind": "output",
        "expectedOutput": "a&quot;b"
      }
    },
    {
      "name": "html-escape-single-quote",
      "description": "{{ }} escapes ' to &#x27; (covers the '\\'' branch of escapeHTML).",
      "template": "{{ /s }}",
      "context": {
        "s": "a'b"
      },
      "expect": {
        "kind": "output",
        "expectedOutput": "a&#x27;b"
      }
    },
    {
      "name": "html-escape-plain-chars-unchanged",
      "description": "Characters that are not HTML-special pass through unchanged (covers the else branch of escapeHTML).",
      "template": "{{ /s }}",
      "context": {
        "s": "hello"
      },
      "expect": {
        "kind": "output",
        "expectedOutput": "hello"
      }
    },
    {
      "name": "html-escape-empty-string",
      "description": "An empty string value renders as empty, exercising the isEmpty() fast-path in escapeHTML.",
      "template": "{{ /s }}",
      "context": {
        "s": ""
      },
      "expect": {
        "kind": "output",
        "expectedOutput": ""
      }
    },
    {
      "name": "unescaped-interpolation-preserves-html-chars",
      "description": "{{{ }}} emits HTML-special characters verbatim; escapeHTML is not applied to UnescapedInterpolation segments.",
      "template": "{{{ /s }}}",
      "context": {
        "s": "a&b<c>d\"e'f"
      },
      "expect": {
        "kind": "output",
        "expectedOutput": "a&b<c>d\"e'f"
      }
    }
  ]
}
