{
  "$schema": "http://json-schema.org/draft-07/schema",
  "$id": "SchematicsAngularJasmineToVitest",
  "title": "Angular Jasmine to Vitest Schematic",
  "type": "object",
  "description": "Refactors a Jasmine test file to use Vitest.",
  "properties": {
    "include": {
      "type": "string",
      "description": "A path to a specific file or directory to refactor. If not provided, all test files in the project will be refactored."
    },
    "fileSuffix": {
      "type": "string",
      "description": "The file suffix to identify test files (e.g., '.spec.ts', '.test.ts').",
      "default": ".spec.ts"
    },
    "project": {
      "type": "string",
      "description": "The name of the project where the tests should be refactored. If not specified, the CLI will determine the project from the current directory.",
      "$default": {
        "$source": "projectName"
      }
    },
    "verbose": {
      "type": "boolean",
      "description": "Enable verbose logging to see detailed information about the transformations being applied.",
      "default": false
    },
    "addImports": {
      "type": "boolean",
      "description": "Whether to add imports for the Vitest API. The Angular `unit-test` system automatically uses the Vitest globals option, which means explicit imports for global APIs like `describe`, `it`, `expect`, and `vi` are often not strictly necessary unless Vitest has been configured not to use globals.",
      "default": false
    },
    "browserMode": {
      "type": "boolean",
      "description": "Whether the tests are intended to run in browser mode. If true, the `toHaveClass` assertions are left as is because Vitest browser mode has such an assertion. Otherwise they're migrated to an equivalent assertion.",
      "default": false
    },
    "report": {
      "type": "boolean",
      "description": "Whether to generate a summary report file (jasmine-vitest-<date>.md) in the project root.",
      "default": true
    }
  }
}
