changedInput schema / properties / patterns / description
Previous value: -"Globs of the test files, relative to `directory`, such as [\"tests/**/*.spec.ts\"]. Default: the ones the server was started with."New value: +"Globs of the test files, relative to `directory`, such as [\"tests/**/*.spec.ts\"]. Default: the ones the server was started with, or without them the files the configs in `directory` and below it run."
changedOutput schema / definitions / DiagnosticCode / anyOf
Previous value: -[
- {
- "enum": [
- "unresolved-test-import",
- "parse-error",
- "read-error",
- "framework-mismatch",
- "unresolved-tag",
- "unresolved-annotation",
- "unresolved-cases",
- "test-in-loop",
- "dynamic-title",
- "duplicate-title",
- "duplicate-id",
- "internal-error",
- "invalid-chain",
- "skip-without-body",
- "test-without-body",
- "describe-not-called",
- "async-describe",
- "nested-test",
- "tag-without-at",
- "removed-api",
- "only-in-skipped-describe",
- "config-may-change-state",
- "symlink-ignored",
- "invalid-import",
- "globals-not-enabled",
- "unknown-framework-version",
- "unsupported-framework-version",
- "local-test-object",
- "state-in-helper",
- "unresolved-option",
- "dynamic-reason",
- "no-files-matched",
- "unsupported-file",
- "approximate-framework-version",
- "test-in-function",
- "empty-title",
- "bench-outside-benchmark-file"
- ],
- "type": "string"
- },
- {
- "type": "string"
- }
-]New value: +[
+ {
+ "enum": [
+ "unresolved-test-import",
+ "parse-error",
+ "read-error",
+ "framework-mismatch",
+ "unresolved-tag",
+ "unresolved-annotation",
+ "unresolved-cases",
+ "test-in-loop",
+ "dynamic-title",
+ "duplicate-title",
+ "duplicate-id",
+ "internal-error",
+ "invalid-chain",
+ "skip-without-body",
+ "test-without-body",
+ "describe-not-called",
+ "async-describe",
+ "nested-test",
+ "tag-without-at",
+ "removed-api",
+ "only-in-skipped-describe",
+ "config-may-change-state",
+ "undefined-tag",
+ "symlink-ignored",
+ "invalid-import",
+ "globals-not-enabled",
+ "unknown-framework-version",
+ "unsupported-framework-version",
+ "local-test-object",
+ "state-in-helper",
+ "unresolved-option",
+ "dynamic-reason",
+ "no-files-matched",
+ "unsupported-file",
+ "approximate-framework-version",
+ "test-in-function",
+ "empty-title",
+ "bench-outside-benchmark-file",
+ "config-value-unknown",
+ "file-not-run",
+ "forbidden-only",
+ "dependency-not-followed"
+ ],
+ "type": "string"
+ },
+ {
+ "type": "string"
+ }
+]
addedOutput schema / definitions / SettingSource
Added value: +{
+ "anyOf": [
+ {
+ "enum": [
+ "test",
+ "suite",
+ "file",
+ "config"
+ ],
+ "type": "string"
+ },
+ {
+ "type": "string"
+ }
+ ],
+ "description": "Where a test's run setting comes from: the test, a describe around it, the file, or the config its file uses. Other values may be added in later releases."
+}
changedOutput schema / definitions / StateSource / anyOf
Previous value: -[
- {
- "enum": [
- "test",
- "suite",
- "file"
- ],
- "type": "string"
- },
- {
- "type": "string"
- }
-]New value: +[
+ {
+ "enum": [
+ "test",
+ "suite",
+ "file",
+ "config"
+ ],
+ "type": "string"
+ },
+ {
+ "type": "string"
+ }
+]
changedOutput schema / definitions / StateSource / description
Previous value: -"Where a test's state is set: on the test, on a describe around it, or at file level. Other values may be added in later releases."New value: +"Where a test's state is set: on the test, on a describe around it, at file level, or by a Vitest tag the config defines. Other values may be added in later releases."
addedOutput schema / definitions / TestRecord / properties / dependencies
Added value: +{
+ "description": "The files that went into `dependencyHash`, the test's own included, sorted, with `/` separators.",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+}
addedOutput schema / definitions / TestRecord / properties / dependencyHash
Added value: +{
+ "description": "Hash of everything the test runs in the project: its call, the hooks, options and code of the file and of every describe around it, and the functions, classes, constants and modules these use, followed through imports. Ignores whitespace and comments. Installed packages are not in it.",
+ "pattern": "^[0-9a-f]{16}$",
+ "type": "string"
+}
addedOutput schema / definitions / TestRecord / properties / hasUnfollowedDependencies
Added value: +{
+ "description": "Something the test reaches couldn't be followed, so a change there doesn't change `dependencyHash`.",
+ "type": "boolean"
+}
addedOutput schema / definitions / TestRecord / properties / projects
Added value: +{
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "Names of the projects that run the test, of the config its file uses, after each project's files and Playwright's `grep` and `grepInvert`. `[]` when no project runs it; null when there is no config, or the scan can't tell."
+}
changedOutput schema / definitions / TestRecord / properties / repeats / description
Previous value: -"Vitest only: how many times the runner runs the test again after the first run."New value: +"How many times the runner runs the test again after the first run: Vitest's `repeats`, or Playwright's `repeatEach` from the config less one."
addedOutput schema / definitions / TestRecord / properties / repeatsConfigText
Added value: +{
+ "description": "The config's source text for `repeats`, Playwright's `repeatEach`, read as `timeoutConfigText` is.",
+ "type": [
+ "string",
+ "null"
+ ]
+}
addedOutput schema / definitions / TestRecord / properties / repeatsSource
Added value: +{
+ "anyOf": [
+ {
+ "$ref": "#/definitions/SettingSource"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "Where `repeats` comes from, read as `timeoutSource` is."
+}
addedOutput schema / definitions / TestRecord / properties / retriesConfigText
Added value: +{
+ "description": "The config's source text for `retries`, read as `timeoutConfigText` is.",
+ "type": [
+ "string",
+ "null"
+ ]
+}
addedOutput schema / definitions / TestRecord / properties / retriesSource
Added value: +{
+ "anyOf": [
+ {
+ "$ref": "#/definitions/SettingSource"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "Where `retries`, `retryDelay` and `retryCondition` come from, read as `timeoutSource` is."
+}
changedOutput schema / definitions / TestRecord / properties / timeout / description
Previous value: -"In milliseconds: the last `test.setTimeout()` in the body or a `beforeEach`, otherwise the nearest describe or file that sets one. Null when the file sets none, so the config's timeout applies."New value: +"In milliseconds: the last `test.setTimeout()` in the body or a `beforeEach`, otherwise the nearest describe or file that sets one, otherwise the config. Null when none sets it, so the runner's default applies."
addedOutput schema / definitions / TestRecord / properties / timeoutConfigText
Added value: +{
+ "description": "The config's source text for `timeout` when the config sets it under a condition, as in `process.env.CI ? 60_000 : 30_000`, shortened when long; null otherwise.",
+ "type": [
+ "string",
+ "null"
+ ]
+}
addedOutput schema / definitions / TestRecord / properties / timeoutSource
Added value: +{
+ "anyOf": [
+ {
+ "$ref": "#/definitions/SettingSource"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "Where `timeout` comes from; null when nothing sets it. A null `timeout` from the config means the config sets it, but its projects set different values or the value depends on a condition, as in `process.env.CI ? 2 : 0`."
+}
changedOutput schema / definitions / TestRecord / required
Previous value: -[
- "id",
- "bodyHash",
- "suiteId",
- "suitePath",
- "relativeFilePath",
- "fileName",
- "lineStart",
- "lineEnd",
- "columnStart",
- "columnEnd",
- "declaredAt",
- "title",
- "titleWithoutTags",
- "hasDynamicTitle",
- "fullName",
- "isTypeTest",
- "state",
- "isActive",
- "isSkipped",
- "isFixme",
- "isTodo",
- "isExpectedToFail",
- "isNotLoaded",
- "isOnly",
- "isConditional",
- "condition",
- "reason",
- "hasDynamicReason",
- "stateSource",
- "stateLine",
- "isParallel",
- "isSerial",
- "tags",
- "annotations",
- "comments",
- "locks",
- "meta",
- "hooks",
- "timeout",
- "isSlow",
- "slowCondition",
- "retries",
- "retryDelay",
- "retryCondition",
- "repeats",
- "fixtures",
- "expectCount",
- "expectedAssertions",
- "expectsAssertions",
- "hasEmptyBody",
- "steps",
- "isBenchmark",
- "isParameterized",
- "caseCount",
- "isInLoop",
- "isInCondition",
- "isInFunction"
-]New value: +[
+ "id",
+ "bodyHash",
+ "dependencyHash",
+ "dependencies",
+ "hasUnfollowedDependencies",
+ "suiteId",
+ "suitePath",
+ "relativeFilePath",
+ "fileName",
+ "lineStart",
+ "lineEnd",
+ "columnStart",
+ "columnEnd",
+ "declaredAt",
+ "title",
+ "titleWithoutTags",
+ "hasDynamicTitle",
+ "fullName",
+ "isTypeTest",
+ "state",
+ "isActive",
+ "isSkipped",
+ "isFixme",
+ "isTodo",
+ "isExpectedToFail",
+ "isNotLoaded",
+ "isOnly",
+ "isConditional",
+ "condition",
+ "reason",
+ "hasDynamicReason",
+ "stateSource",
+ "stateLine",
+ "isParallel",
+ "isSerial",
+ "tags",
+ "annotations",
+ "comments",
+ "locks",
+ "meta",
+ "hooks",
+ "timeout",
+ "isSlow",
+ "slowCondition",
+ "retries",
+ "retryDelay",
+ "retryCondition",
+ "repeats",
+ "timeoutSource",
+ "retriesSource",
+ "repeatsSource",
+ "timeoutConfigText",
+ "retriesConfigText",
+ "repeatsConfigText",
+ "fixtures",
+ "expectCount",
+ "expectedAssertions",
+ "expectsAssertions",
+ "hasEmptyBody",
+ "steps",
+ "isBenchmark",
+ "isParameterized",
+ "caseCount",
+ "isInLoop",
+ "isInCondition",
+ "isInFunction",
+ "projects"
+]
addedOutput schema / properties / remaining
Added value: +{
+ "description": "Ids found but left out to keep the answer short; pass them again.",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+}
changedOutput schema / required
Previous value: -[
- "framework",
- "frameworkVersion",
- "tests",
- "diagnostics",
- "notFound",
- "scanErrors",
- "hint"
-]New value: +[
+ "framework",
+ "frameworkVersion",
+ "tests",
+ "diagnostics",
+ "notFound",
+ "remaining",
+ "scanErrors",
+ "hint"
+]