hubot-pretend
Version:
Test Hubot scripts with a mock robot, rooms and users.
35 lines (30 loc) • 2.5 kB
JavaScript
;Object.defineProperty(exports, "__esModule", { value: true });
var _sinon = require('sinon');var _sinon2 = _interopRequireDefault(_sinon);
var _es = require('hubot-async/es2015');function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}
/**
* Add response method spies and .sendPrivate routed to adapter method.
*
* @param {Robot} robot A Robot instance
* @param {TextMessage} message A Message instance (can also be catch-all)
* @param {array} match A Match object from the successful Regex match
* @return MockResponse New mock response instance
*/
class MockResponse extends _es.Response {
constructor(robot, message, match) {
super(robot, message, match);
// spy on all instance methods
Object.getOwnPropertyNames(_es.Response.prototype).map(key => {
let spy = _sinon2.default.spy(this, key);
delete spy.stackTrace; // remove verbose logging (see bug in robot.js)
});
robot.emit('response', this);
}
/**
* Custom method for some platform adapters to process private messages
* @param {array} strings... Array of message text strings
*/
sendPrivate() {var _robot$adapter;for (var _len = arguments.length, strings = Array(_len), _key = 0; _key < _len; _key++) {strings[_key] = arguments[_key];}
return (_robot$adapter = this.robot.adapter).sendPrivate.apply(_robot$adapter, [this.envelope].concat(strings));
}}exports.default =
MockResponse;module.exports = exports['default'];
//# sourceMappingURL=response.js.map