blob: 25417e2b4b746c194cef004436bf67787314efcd [file] [log] [blame]
{
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "An event emitted by the test package's JSON reporter",
"definitions": {
"GroupEntry": {
"required": [
"id",
"suiteID",
"metadata",
"line",
"column",
"url"
],
"properties": {
"id": {"type": "integer", "minimum": 0},
"suiteID": {"type": "integer", "minimum": 0},
"metadata": {"$ref": "#/definitions/Metadata"}
},
"oneOf": [
{
"properties": {
"line": {"type": "integer", "minimum": 1},
"column": {"type": "integer", "minimum": 1},
"url": {"type": "string", "format": "uri"}
}
},
{
"properties": {
"line": {"type": "null"},
"column": {"type": "null"},
"url": {"type": "null"}
}
}
]
},
"Test": {
"allOf": [{"$ref": "#/definitions/GroupEntry"}],
"required": [
"name",
"groupIDs"
],
"properties": {
"name": {"type": "string"},
"groupIDs": {
"type": "array",
"items": {"type": "integer", "minimum": 0}
}
}
},
"Suite": {
"required": ["id", "platform", "path"],
"properties": {
"id": {"type": "integer", "minimum": 0},
"platform": {
"oneOf": [{"type": "string"}, {"type": "null"}]
},
"path": {"type": "string"}
}
},
"Group": {
"allOf": [{"$ref": "#/definitions/GroupEntry"}],
"required": ["name"],
"properties": {
"parentID": {
"oneOf": [{"type": "integer", "minimum": 0}, {"type": "null"}]
},
"name": {
"oneOf": [{"type": "string"}, {"type": "null"}]
},
"testCount": {"type": "integer", "minimum": 0}
}
},
"Metadata": {
"required": ["skip", "skipReason"],
"properties": {
"skip": {"type": "boolean"},
"skipReason": {
"oneOf": [{"type": "string"}, {"type": "null"}]
}
}
}
},
"required": ["type", "time"],
"properties": {
"time": {"type": "integer", "minimum": 0},
"type": {"type": "string"}
},
"oneOf": [
{
"title": "StartEvent",
"required": ["protocolVersion", "runnerVersion"],
"properties": {
"type": {"enum": ["start"]},
"pid": {"type": "integer", "minimum": 0},
"protocolVersion": {"type": "string", "pattern": "^0\\.1\\."},
"runnerVersion": {
"oneOf": [{"type": "string"}, {"type": "null"}]
}
}
},
{
"title": "TestStartEvent",
"required": ["test"],
"properties": {
"type": {"enum": ["testStart"]},
"test": {"$ref": "#/definitions/Test"}
}
},
{
"title": "AllSuitesEvent",
"required": ["count"],
"properties": {
"type": {"enum": ["allSuites"]},
"count": {"type": "integer", "minimum": 0}
}
},
{
"title": "SuiteEvent",
"required": ["suite"],
"properties": {
"type": {"enum": ["suite"]},
"suite": {"$ref": "#/definitions/Suite"}
}
},
{
"title": "DebugEvent",
"required": ["suiteID"],
"properties": {
"type": {"enum": ["debug"]},
"suiteID": {"type": "integer", "minimum": 0},
"observatory": {
"oneOf": [{"type": "string", "format": "uri"}, {"type": "null"}]
},
"remoteDebugger": {
"oneOf": [{"type": "string", "format": "uri"}, {"type": "null"}]
}
}
},
{
"title": "GroupEvent",
"required": ["group"],
"properties": {
"type": {"enum": ["group"]},
"group": {"$ref": "#/definitions/Group"}
}
},
{
"title": "MessageEvent",
"required": ["testID", "message", "type"],
"properties": {
"type": {"enum": ["print"]},
"testID": {"type": "integer", "minimum": 0},
"message": {"type": "string"},
"messageType": {"type": "string", "enum": ["print", "skip"]}
}
},
{
"title": "ErrorEvent",
"required": ["testID", "error", "stackTrace", "isFailure"],
"properties": {
"type": {"enum": ["error"]},
"testID": {"type": "integer", "minimum": 0},
"error": {"type": "string"},
"stackTrace": {"type": "string"},
"isFailure": {"type": "boolean"}
}
},
{
"title": "TestDoneEvent",
"required": ["testID", "result", "hidden", "skipped"],
"properties": {
"type": {"enum": ["testDone"]},
"testID": {"type": "integer", "minimum": 0},
"result": {"type": "string", "enum": ["success", "failure", "error"]},
"hidden": {"type": "boolean"},
"skipped": {"type": "boolean"}
}
},
{
"title": "DoneEvent",
"required": ["success"],
"properties": {
"type": {"enum": ["done"]},
"success": {"type": "boolean"}
}
},
{
"title": "FutureEvent",
"description":
"A placeholder event to allow new events to be added in the future.",
"properties": {
"type": {
"not": {
"enum": [
"start", "testStart", "allSuites", "suite", "group", "print",
"error", "testDone", "done", "debug"
]
}
}
}
}
]
}