{
  "schema": "https://bars.commonsware.com/conformance/schema/env-property-fixture.schema.json",
  "version": "0.1.0",
  "cases": [
    {
      "name": "assign-env-read",
      "description": "An @env assignment is readable as @env/name.",
      "template": "{{= @env/greeting = \"Hello\" }}{{ @env/greeting }}",
      "expect": {
        "kind": "output",
        "expectedOutput": "Hello"
      }
    },
    {
      "name": "assign-env-visible-in-with",
      "description": "An @env assignment is visible inside a #with block.",
      "template": "{{= @env/g = \"Hi\" }}{{#with inner }}{{ @env/g }}{{/with}}",
      "context": {
        "inner": {
          "z": "Z"
        }
      },
      "expect": {
        "kind": "output",
        "expectedOutput": "Hi"
      }
    },
    {
      "name": "assign-env-accumulates-in-each",
      "description": "An @env assignment inside #each persists after the loop (the last value wins).",
      "template": "{{#each items }}{{= @env/last = this }}{{/each}}{{ @env/last }}",
      "context": {
        "items": [
          "a",
          "b",
          "c"
        ]
      },
      "expect": {
        "kind": "output",
        "expectedOutput": "c"
      }
    },
    {
      "name": "assign-env-shadows-property",
      "description": "An @env assignment shadows a registered property for the rest of the render.",
      "template": "{{ @env/p }}{{= @env/p = \"ovr\" }}{{ @env/p }}",
      "properties": {
        "p": {
          "kind": "element",
          "value": "base"
        }
      },
      "expect": {
        "kind": "output",
        "expectedOutput": "baseovr"
      }
    }
  ]
}
