| { |
| "$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"]}, |
| "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" |
| ] |
| } |
| } |
| } |
| } |
| ] |
| } |