{
  "schema": "https://bars.commonsware.com/conformance/schema/render-fixture.schema.json",
  "version": "0.1.0",
  "cases": [
    {
      "name": "strip_html-simple-tags",
      "spotlight": true,
      "description": "Inline tags are removed; their inner text is preserved.",
      "template": "{{ html | strip_html }}",
      "context": {
        "html": "<p>hello <b>world</b></p>"
      },
      "expect": {
        "kind": "output",
        "expectedOutput": "hello world"
      }
    },
    {
      "name": "strip_html-self-closing-and-attrs",
      "spotlight": true,
      "description": "Tags with attributes and self-closing slashes are removed entirely.",
      "template": "{{ html | strip_html }}",
      "context": {
        "html": "before<br/>middle<img src=\"x\" />after"
      },
      "expect": {
        "kind": "output",
        "expectedOutput": "beforemiddleafter"
      }
    },
    {
      "name": "strip_html-script-body-removed",
      "description": "Both the script tags AND their body are removed (case-insensitive open/close).",
      "template": "{{ html | strip_html }}",
      "context": {
        "html": "before<SCRIPT>alert('x')</Script>after"
      },
      "expect": {
        "kind": "output",
        "expectedOutput": "beforeafter"
      }
    },
    {
      "name": "strip_html-style-body-removed",
      "description": "Both the style tags AND their body are removed.",
      "template": "{{ html | strip_html }}",
      "context": {
        "html": "before<style>.a{color:red}</style>after"
      },
      "expect": {
        "kind": "output",
        "expectedOutput": "beforeafter"
      }
    },
    {
      "name": "strip_html-comment-removed",
      "description": "HTML comments are removed.",
      "template": "{{ html | strip_html }}",
      "context": {
        "html": "before<!-- inline note -->after"
      },
      "expect": {
        "kind": "output",
        "expectedOutput": "beforeafter"
      }
    },
    {
      "name": "strip_html-entities-not-decoded",
      "description": "HTML entities are left intact (no entity decoding). Unescaped interpolation avoids the double-encoding that {{ }} would introduce.",
      "template": "{{{ html | strip_html }}}",
      "context": {
        "html": "<p>1 &amp; 2</p>"
      },
      "expect": {
        "kind": "output",
        "expectedOutput": "1 &amp; 2"
      }
    },
    {
      "name": "strip_html-no-tags-passthrough",
      "description": "Plain text without tags is unchanged.",
      "template": "{{ html | strip_html }}",
      "context": {
        "html": "no tags here"
      },
      "expect": {
        "kind": "output",
        "expectedOutput": "no tags here"
      }
    },
    {
      "name": "strip_html-with-arg-is-error",
      "description": "Any argument is an arity error.",
      "template": "{{ html | strip_html: \"x\" }}",
      "context": {
        "html": "<p>hi</p>"
      },
      "expect": {
        "kind": "error",
        "errorCode": "KB-2002"
      }
    }
  ]
}
