{
  "$schema": "../../test_case_schema.json",
  "cases": [
    {
      "description": "should handle single icus",
      "inputFiles": [
        "single_icu"
      ],
      "expectations": [
        {
          "extraChecks": [
            "verifyPlaceholdersIntegrity",
            "verifyUniqueConsts"
          ]
        }
      ]
    },
    {
      "description": "should properly escape quotes in content",
      "inputFiles": [
        "escape_quotes.ts"
      ],
      "expectations": [
        {
          "extraChecks": [
            "verifyPlaceholdersIntegrity",
            "verifyUniqueConsts"
          ]
        }
      ]
    },
    {
      "description": "should support ICU-only templates",
      "inputFiles": [
        "icu_only.ts"
      ],
      "expectations": [
        {
          "extraChecks": [
            "verifyPlaceholdersIntegrity",
            "verifyUniqueConsts"
          ]
        }
      ]
    },
    {
      "description": "should generate i18n instructions for icus generated outside of i18n blocks",
      "inputFiles": [
        "bare_icu.ts"
      ],
      "expectations": [
        {
          "extraChecks": [
            "verifyPlaceholdersIntegrity",
            "verifyUniqueConsts"
          ]
        }
      ]
    },
    {
      "description": "should support interpolation with custom interpolation config",
      "inputFiles": [
        "custom_interpolation.ts"
      ],
      "expectations": [
        {
          "extraChecks": [
            "verifyPlaceholdersIntegrity",
            "verifyUniqueConsts"
          ]
        }
      ]
    },
    {
      "description": "should handle icus with html",
      "inputFiles": [
        "html_content.ts"
      ],
      "expectations": [
        {
          "extraChecks": [
            "verifyPlaceholdersIntegrity",
            "verifyUniqueConsts"
          ]
        }
      ]
    },
    {
      "description": "should handle icus with expressions",
      "inputFiles": [
        "expressions.ts"
      ],
      "expectations": [
        {
          "extraChecks": [
            "verifyPlaceholdersIntegrity",
            "verifyUniqueConsts"
          ]
        }
      ]
    },
    {
      "description": "should handle multiple icus in one block",
      "inputFiles": [
        "multiple_icus.ts"
      ],
      "expectations": [
        {
          "extraChecks": [
            "verifyPlaceholdersIntegrity",
            "verifyUniqueConsts"
          ]
        }
      ]
    },
    {
      "description": "should handle multiple icus that share same placeholder",
      "inputFiles": [
        "shared_placeholder.ts"
      ],
      "expectations": [
        {
          "extraChecks": [
            "verifyPlaceholdersIntegrity",
            "verifyUniqueConsts"
          ]
        }
      ]
    },
    {
      "description": "should handle nested icus",
      "inputFiles": [
        "nested_icus.ts"
      ],
      "expectations": [
        {
          "extraChecks": [
            "verifyPlaceholdersIntegrity",
            "verifyUniqueConsts"
          ]
        }
      ]
    },
    {
      "description": "nested with interpolations in \"other\" blocks",
      "inputFiles": [
        "nested_icu_in_other_block.ts"
      ],
      "expectations": [
        {
          "extraChecks": [
            "verifyPlaceholdersIntegrity",
            "verifyUniqueConsts"
          ]
        }
      ]
    },
    {
      "description": "should handle icus in different contexts",
      "inputFiles": [
        "different_contexts.ts"
      ],
      "expectations": [
        {
          "extraChecks": [
            "verifyPlaceholdersIntegrity",
            "verifyUniqueConsts"
          ]
        }
      ]
    },
    {
      "description": "should handle icus with interpolations",
      "inputFiles": [
        "icu_with_interpolations.ts"
      ],
      "expectations": [
        {
          "extraChecks": [
            "verifyPlaceholdersIntegrity",
            "verifyUniqueConsts"
          ]
        }
      ]
    },
    {
      "description": "should handle icus with named interpolations",
      "inputFiles": [
        "named_interpolations.ts"
      ],
      "expectations": [
        {
          "extraChecks": [
            "verifyPlaceholdersIntegrity",
            "verifyUniqueConsts"
          ]
        }
      ]
    },
    {
      "description": "should attach metadata in case an ICU represents the whole message",
      "inputFiles": [
        "metadata.ts"
      ],
      "expectations": [
        {
          "extraChecks": [
            "verifyPlaceholdersIntegrity",
            "verifyUniqueConsts"
          ]
        }
      ]
    },
    {
      "description": "should produce proper messages when `select` or `plural` keywords have spaces after them",
      "inputFiles": [
        "keyword_spaces.ts"
      ],
      "expectations": [
        {
          "extraChecks": [
            "verifyPlaceholdersIntegrity",
            "verifyUniqueConsts"
          ]
        }
      ]
    }
  ]
}
