chore: auto-complete for __spec__.jsonc file (#23476)

This makes writing these tests a little easier.
This commit is contained in:
David Sherret 2024-04-20 18:47:10 -04:00 committed by GitHub
parent f61e1a9796
commit db3b3fb665
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 108 additions and 1 deletions

View file

@ -76,9 +76,26 @@ a "steps" array.
- `args` - A string (that will be spilt on whitespace into an args array) or an
array of arguments.
- `output` - Path to use to assert the output.
- `clean` (boolean) - Whether to empty the deno_dir before running the step.
- `cleanDenoDir` (boolean) - Whether to empty the deno_dir before running the
step.
- `exitCode` (number) - Expected exit code.
### Auto-complete
To get auto-complete for these files, add the following to a local
`.vscode/settings.json` file:
```json
{
"json.schemas": [{
"fileMatch": [
"__test__.jsonc"
],
"url": "./tests/specs/schema.json"
}]
}
```
## `.out` files
`.out` files are used to assert the output when running a test or test step.

90
tests/specs/schema.json Normal file
View file

@ -0,0 +1,90 @@
{
"$id": "https://github.com/denoland/deno/blob/tests/specs/schema.json",
"$schema": "http://json-schema.org/draft-07/schema",
"description": "Schema file for the __test__.jsonc files",
"required": [],
"title": "Deno internal spec test schema",
"type": "object",
"definitions": {
"single_test": {
"type": "object",
"required": ["args", "output"],
"properties": {
"args": {
"default": "",
"oneOf": [{
"type": "string"
}, {
"type": "array",
"items": {
"type": "string"
}
}]
},
"cleanDenoDir": {
"type": "boolean"
},
"cwd": {
"type": "string"
},
"commandName": {
"type": "string"
},
"envs": {
"type": "object",
"additionalProperties": {
"type": "string"
}
},
"output": {
"type": "string"
},
"exitCode": {
"type": "integer"
}
}
}
},
"oneOf": [{
"required": ["steps"],
"properties": {
"tempDir": {
"type": "boolean"
},
"base": {
"type": "string"
},
"envs": {
"type": "object",
"additionalProperties": {
"type": "string"
}
},
"steps": {
"type": "array",
"items": {
"$ref": "#/definitions/single_test"
}
}
}
}, {
"allOf": [{
"properties": {
"tempDir": {
"type": "boolean"
},
"base": {
"type": "string"
},
"envs": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}, {
"$ref": "#/definitions/single_test"
}]
}]
}