summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Sherret <dsherret@users.noreply.github.com>2024-04-20 18:47:10 -0400
committerGitHub <noreply@github.com>2024-04-20 22:47:10 +0000
commitdb3b3fb665bba7a063e038907efbc0a14d863d63 (patch)
treee215aa00614c990ef1c0066f8ac2ae9a6043391f
parentf61e1a9796b551439a0fa266f5630a47974ddc91 (diff)
chore: auto-complete for __spec__.jsonc file (#23476)
This makes writing these tests a little easier.
-rw-r--r--tests/specs/README.md19
-rw-r--r--tests/specs/schema.json90
2 files changed, 108 insertions, 1 deletions
diff --git a/tests/specs/README.md b/tests/specs/README.md
index a23fa1ce6..d9c620aa7 100644
--- a/tests/specs/README.md
+++ b/tests/specs/README.md
@@ -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.
diff --git a/tests/specs/schema.json b/tests/specs/schema.json
new file mode 100644
index 000000000..8b21ab32c
--- /dev/null
+++ b/tests/specs/schema.json
@@ -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"
+ }]
+ }]
+}