{
  "$schema": "../../test_case_schema.json",
  "cases": [
    {
      "description": "should define a basic NgModule",
      "inputFiles": [
        "basic.ts"
      ],
      "expectations": [
        {
          "failureMessage": "Invalid NgModule/Injector definition",
          "files": [
            "basic.js"
          ]
        }
      ]
    },
    {
      "description": "should define an NgModule with declarations and bootstrap",
      "inputFiles": [
        "declarations.ts"
      ],
      "expectations": [
        {
          "failureMessage": "Invalid NgModule/Injector definition",
          "files": [
            "declarations.js"
          ]
        }
      ]
    },
    {
      "description": "should define an NgModule with declarations and bootstrap (jit mode)",
      "inputFiles": [
        "declarations_jit_mode.ts"
      ],
      "expectations": [
        {
          "failureMessage": "Invalid NgModule/Injector definition",
          "files": [
            "declarations_jit_mode.js"
          ]
        }
      ],
      "compilationModeFilter": [
        "linked compile"
      ],
      "angularCompilerOptions": {
        "linkerJitMode": true
      }
    },
    {
      "description": "should define an NgModule and injector with providers",
      "inputFiles": [
        "providers.ts"
      ],
      "expectations": [
        {
          "failureMessage": "Invalid NgModule/Injector definition",
          "files": [
            "providers.js"
          ]
        }
      ]
    },
    {
      "description": "should define NgModules with imports and exports",
      "inputFiles": [
        "imports_exports.ts"
      ],
      "expectations": [
        {
          "failureMessage": "Invalid NgModule/Injector definition",
          "files": [
            "imports_exports.js"
          ]
        }
      ]
    },
    {
      "description": "should define NgModules with imports and exports (jit mode)",
      "inputFiles": [
        "imports_exports_jit_mode.ts"
      ],
      "expectations": [
        {
          "failureMessage": "Invalid NgModule/Injector definition",
          "files": [
            "imports_exports_jit_mode.js"
          ]
        }
      ],
      "compilationModeFilter": [
        "linked compile"
      ],
      "angularCompilerOptions": {
        "linkerJitMode": true
      }
    },
    {
      "description": "should not process NgModules that are marked `jit`",
      "inputFiles": [
        "no_aot.ts"
      ],
      "expectations": [
        {
          "failureMessage": "Invalid NgModule/Injector definition",
          "files": [
            "no_aot.js"
          ]
        }
      ]
    },
    {
      "description": "should handle NgModules that extend other classes",
      "inputFiles": [
        "inheritance.ts"
      ],
      "expectations": [
        {
          "failureMessage": "Invalid NgModule/Injector definition",
          "files": [
            "inheritance.js"
          ]
        }
      ]
    },
    {
      "description": "should handle NgModules with forward refs",
      "inputFiles": [
        "forward_refs.ts"
      ],
      "expectations": [
        {
          "failureMessage": "Invalid NgModule/Injector definition",
          "files": [
            "forward_refs.js"
          ]
        }
      ],
      "compilationModeFilter": [
        "linked compile"
      ],
      "angularCompilerOptions": {
        "linkerJitMode": true
      }
    }
  ]
}
