- // Copyright 2014, Yahoo! Inc.
- // Copyrights licensed under the Mit License. See the accompanying LICENSE file for terms.
-
- var AbstractMessenger = require('../abstractMessenger');
-
- /**
- * @class PreceptorMessenger
- * @extends AbstractMessenger
- * @constructor
- */
- var PreceptorMessenger = AbstractMessenger.extend(
-
- {
- /**
- * Sends a message
- *
- * @method _send
- * @param {string} messageType
- * @param {*} data
- * @param {object} [options]
- * @private
- */
- _send: function (messageType, data, options) {
- this.trigger('#|# ' + messageType + " " + JSON.stringify(data) + " #|#\n", options);
- },
-
-
- /**
- * Sends intro message
- *
- * @method _sendIntro
- * @param {object} [options]
- * @private
- */
- _sendIntro: function (options) {
- if (!this._introSent) {
- this._introSent = true;
- this.version(options);
- }
- },
-
-
- /**
- * Sends the version as message
- *
- * @method version
- * @param {object} [options]
- */
- version: function (options) {
- this._sendIntro();
- this._send("version", 1, options);
- },
-
-
- /**
- * Item has custom data
- *
- * @method itemData
- * @param {string} id
- * @param {string} json Data in JSON format
- * @param {object} [options]
- */
- itemData: function (id, json, options) {
- this._sendIntro();
- this._send("itemData", [id, json], options);
- },
-
- /**
- * Item has a custom message
- *
- * @method itemMessage
- * @param {string} id
- * @param {string} message
- * @param {object} [options]
- */
- itemMessage: function (id, message, options) {
- this._sendIntro();
- this._send("itemMessage", [id, message], options);
- },
-
-
- /**
- * Suite starts
- *
- * @method suiteStart
- * @param {string} id
- * @param {string} parentId
- * @param {string} suiteName
- * @param {object} [options]
- */
- suiteStart: function (id, parentId, suiteName, options) {
- this._sendIntro();
- this._send("suiteStart", [id, parentId, suiteName], options);
- },
-
- /**
- * Suite ends
- *
- * @method suiteEnd
- * @param {string} id
- * @param {object} [options]
- */
- suiteEnd: function (id, options) {
- this._sendIntro();
- this._send("suiteEnd", [id], options);
- },
-
-
- /**
- * Test starts
- *
- * @method testStart
- * @param {string} id
- * @param {string} parentId
- * @param {string} testName
- * @param {object} [options]
- */
- testStart: function (id, parentId, testName, options) {
- this._sendIntro();
- this._send("testStart", [id, parentId, testName], options);
- },
-
-
- /**
- * Test fails
- *
- * @method testFailed
- * @param {string} id
- * @param {string} [message]
- * @param {string} [reason]
- * @param {object} [options]
- */
- testFailed: function (id, message, reason, options) {
- this._sendIntro();
- this._send("testFailed", [id, message, reason], options);
- },
-
- /**
- * Test has an error
- *
- * @method testError
- * @param {string} id
- * @param {string} [message]
- * @param {string} [reason]
- * @param {object} [options]
- */
- testError: function (id, message, reason, options) {
- this._sendIntro();
- this._send("testError", [id, message, reason], options);
- },
-
- /**
- * Test has passed
- *
- * @method testPassed
- * @param {string} id
- * @param {object} [options]
- */
- testPassed: function (id, options) {
- this._sendIntro();
- this._send("testPassed", [id], options);
- },
-
- /**
- * Test is undefined
- *
- * @method testUndefined
- * @param {string} id
- * @param {object} [options]
- */
- testUndefined: function (id, options) {
- this._sendIntro();
- this._send("testUndefined", [id], options);
- },
-
- /**
- * Test is skipped
- *
- * @method testSkipped
- * @param {string} id
- * @param {string} [reason]
- * @param {object} [options]
- */
- testSkipped: function (id, reason, options) {
- this._sendIntro();
- this._send("testSkipped", [id, reason], options);
- },
-
- /**
- * Test is incomplete
- *
- * @method testIncomplete
- * @param {string} id
- * @param {object} [options]
- */
- testIncomplete: function (id, options) {
- this._sendIntro();
- this._send("testIncomplete", [id], options);
- }
- });
-
- module.exports = PreceptorMessenger;
-
-