150 lines
5.6 KiB
JSON
150 lines
5.6 KiB
JSON
{
|
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
"$id": "http://angular.io/internal/compliance-test-cases.json",
|
|
"title": "Compliance test cases",
|
|
"description": "Describes configuration for an Angular compliance test",
|
|
"type": "object",
|
|
"properties": {
|
|
"cases": {
|
|
"title": "A collection of test cases",
|
|
"type": "array",
|
|
"items": {
|
|
"title": "A test case definition",
|
|
"type": "object",
|
|
"required": [
|
|
"description"
|
|
],
|
|
"properties": {
|
|
"description": {
|
|
"title": "A description of the test case",
|
|
"description": "This will be used as the message in an `it()` clause.",
|
|
"type": "string"
|
|
},
|
|
"compilationModeFilter": {
|
|
"title": "An array of compilation modes under which this test-case should be run.",
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"enum": [
|
|
"full compile",
|
|
"linked compile"
|
|
]
|
|
},
|
|
"default": [
|
|
"full compile",
|
|
"linked compile"
|
|
]
|
|
},
|
|
"inputFiles": {
|
|
"title": "A collection of source files to compile",
|
|
"type": "array",
|
|
"items": {
|
|
"title": "Path (relative to the test case) of a source file to compile",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"expectations": {
|
|
"title": "A collection of expectations for this test case",
|
|
"type": "array",
|
|
"items": {
|
|
"title": "An expectation to check for this test case",
|
|
"type": "object",
|
|
"properties": {
|
|
"failureMessage": {
|
|
"title": "The message to display if this expectation fails",
|
|
"type": "string",
|
|
"default": "Incorrect generated output."
|
|
},
|
|
"files": {
|
|
"title": "A collection of expected-generated file path pairs",
|
|
"type": "array",
|
|
"items": {
|
|
"anyOf": [
|
|
{
|
|
"title": "A pair of expected-generated file paths to be compared",
|
|
"type": "object",
|
|
"required": [
|
|
"expected",
|
|
"generated"
|
|
],
|
|
"properties": {
|
|
"expected": {
|
|
"title": "A path (relative to the test case) where a file containing expected output can be found",
|
|
"type": "string"
|
|
},
|
|
"generated": {
|
|
"title": "A path (relative to the build output directory) where the compiled file can be found.",
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"type": "string",
|
|
"title": "A path (relative to the test case) where an file containing expected output can be found. (The generated path is inferred from this.)"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"expectedErrors": {
|
|
"title": "A collection of expected error messages for this test-case.",
|
|
"type": "array",
|
|
"items": {
|
|
"title": "An array of strings that should appear in the error message.",
|
|
"type": "object",
|
|
"properties": {
|
|
"message": {
|
|
"title": "A regular expression that should match the error message",
|
|
"type": "string"
|
|
},
|
|
"location": {
|
|
"title": "An optional regular expression that should match the location of the error",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"message"
|
|
]
|
|
}
|
|
},
|
|
"extraChecks": {
|
|
"title": "Additional checks to run against the generated code.",
|
|
"type": "array",
|
|
"items": {
|
|
"anyOf": [
|
|
{
|
|
"title": "The name of a function to run as an additional check on the source.",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"title": "An array whose first element is the name of a function to run as an additional check, and subsequent elements are args for this function",
|
|
"type": "array"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"compilerOptions": {
|
|
"title": "Additional options to pass to the TypeScript compiler",
|
|
"type": "object"
|
|
},
|
|
"angularCompilerOptions": {
|
|
"title": "Additional options to pass to the Angular compiler",
|
|
"type": "object"
|
|
},
|
|
"focusTest": {
|
|
"title": "Set to true to focus on this test - equivalent to jasmine's `fit()` function",
|
|
"type": "boolean"
|
|
},
|
|
"excludeTest": {
|
|
"title": "Set to true to exclude this test - equivalent to jasmine's `xit()` function",
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
},
|
|
"minItems": 1
|
|
}
|
|
}
|
|
}
|