summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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"
+ }]
+ }]
+}