hubot-pretend
Version:
Test Hubot scripts with a mock robot, rooms and users.
41 lines (36 loc) • 2.67 kB
JavaScript
;Object.defineProperty(exports, "__esModule", { value: true });
var _lodash = require('lodash');var _lodash2 = _interopRequireDefault(_lodash);
var _es = require('hubot-async/es2015');function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}
/**
* Represents a participating user in the chat.
*
* NB: not used as mock because it changes constructor to remove id argument.
*
* @param {string} [name] Name for the user (alternative to giving as attribute in options)
* @param {Object} [options] Key/valye user attributes
* @return User A new test user
*/
class User extends _es.User {
constructor() {
let id, options, name;for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {args[_key] = arguments[_key];}
if (_lodash2.default.isString(args[0])) name = args.shift();
if (_lodash2.default.isObject(args[0])) options = args.shift();
if (options == null) options = {};
if (name != null) options.name = name;
if (options.id) id = options.id;else
id = _lodash2.default.uniqueId('user_');
super(id, options);
}
/**
* Create a user clone with a designated room assigned.
*
* @param {Room|String} room Room object or name of room to assign
* @return User Clone of user
*/
in(room) {
let clone = _lodash2.default.clone(this);
clone.room = _lodash2.default.isString(room) ? room : room.name;
return clone;
}}exports.default =
User;module.exports = exports['default'];
//# sourceMappingURL=user.js.map