hubot-test-helper-pull-request-1
Version:
Helper for testing hubot script
48 lines (34 loc) • 1.18 kB
text/coffeescript
Fs = require('fs')
Path = require('path')
Hubot = require('hubot')
class MockRobot extends Hubot.Robot
constructor: ->
super null, null, false, 'hubot'
loadAdapter: ->
= new Room(@)
class Room extends Hubot.Adapter
constructor: () ->
= []
=
say: (userName, message) =>
(userName, message)
receive: (userName, message) ->
.push [userName, message]
user = new Hubot.User(userName)
super new Hubot.TextMessage(user, message)
reply: (envelope, strings...) ->
.push ['hubot', "@#{envelope.user.name} #{str}"] for str in strings
send: (envelope, strings...) ->
.push ['hubot', str] for str in strings
class Helper
constructor: (scriptsPath) ->
= Path.resolve(Path.dirname(module.parent.filename), scriptsPath)
createRoom: ->
robot = new MockRobot
if Fs.statSync().isDirectory()
for file in Fs.readdirSync().sort()
robot.loadFile , file
else
robot.loadFile Path.dirname(), Path.basename()
robot.adapter
module.exports = Helper