hubot-note
Version:
hubot note taking script
179 lines (136 loc) • 5.89 kB
text/coffeescript
NoteManager = require('../src/hubot_note_scripts/note_manager.coffee').NoteManager
describe "note manager test", ->
robot = undefined
room_test_name = undefined
note_test_title = undefined
beforeEach (done) ->
= sinon.useFakeTimers(0, "setTimeout", "clearTimeout", "setInterval", "clearInterval", "Date")
robot = sinon.stub()
robot.brain = sinon.stub()
robot.brain.on = sinon.stub()
room_test_name = "test"
note_test_title = "test_note"
done()
describe "functions", ->
describe "createNote", ->
manager = undefined
beforeEach (done) ->
manager = new NoteManager robot
sinon.stub(manager, "saveNote").returns(true)
done()
it "success", (done) ->
assert.equal note_test_title, manager.createNewNote(room_test_name, note_test_title).title
assert.notEqual null, manager.getNote(room_test_name, note_test_title)
assert.equal 0, manager.started_note_list.length
assert.equal null, manager.executeGetStartedNote(room_test_name)
done()
describe "getNote", ->
manager = undefined
beforeEach (done) ->
manager = new NoteManager robot
sinon.stub(manager, "saveNote").returns(true)
done()
it "success", (done) ->
manager.createNewNote(room_test_name, note_test_title)
assert.equal manager.getNote(room_test_name, note_test_title).title, note_test_title
done()
it "not exist", (done) ->
assert.equal manager.getNote(room_test_name, note_test_title), null
done()
describe "executeGetStartedNote", ->
manager = undefined
beforeEach (done) ->
manager = new NoteManager robot
sinon.stub(manager, "saveNote").returns(true)
done()
it "no exist", (done) ->
assert.equal manager.executeGetStartedNote('room', 'note'), null
done()
it "exist", (done) ->
assert.equal null, manager.executeGetStartedNote(room_test_name, note_test_title)
assert.equal note_test_title, manager.createNewNote(room_test_name, note_test_title).title
done()
describe "commands", ->
describe "executeGetStartedNote", ->
manager = undefined
beforeEach (done) ->
manager = new NoteManager robot
sinon.stub(manager, "saveNote").returns(true)
done()
it "not started", (done) ->
assert.equal null, manager.executeGetStartedNote(room_test_name, note_test_title)
done()
it "started", (done) ->
manager.executeStartNote(room_test_name, note_test_title)
assert.equal note_test_title, manager.executeGetStartedNote(room_test_name, note_test_title).title
done()
it "started any note", (done) ->
manager.executeStartNote(room_test_name, note_test_title)
assert.equal note_test_title, manager.executeGetStartedNote(room_test_name).title
done()
describe "executeStartNote()", ->
manager = undefined
beforeEach (done) ->
manager = new NoteManager robot
sinon.stub(manager, "saveNote").returns(true)
done()
it "start note", (done) ->
assert.equal true, manager.executeStartNote(room_test_name, note_test_title)
done()
it "already started", (done) ->
manager.executeStartNote(room_test_name, note_test_title)
assert.equal false, manager.executeStartNote(room_test_name, note_test_title)
done()
describe "executeNoteShow()", ->
manager = undefined
all_line = undefined
beforeEach (done) ->
manager = new NoteManager robot
sinon.stub(manager, "saveNote").returns(true)
all_line = []
all_line.push "line_1"
all_line.push "line_2"
all_line.push "line_3"
all_line.push "line_4"
done()
it "show all lines in note", (done) ->
manager.executeStartNote(room_test_name, note_test_title)
for line in all_line
manager.writeTextToNewestNoteInRoom(room_test_name, line)
assert.equal all_line.join("\n"), manager.executeNoteShow(room_test_name, note_test_title)
done()
it "show 3 lines in note", (done) ->
manager.executeStartNote(room_test_name, note_test_title)
for line in all_line
manager.writeTextToNewestNoteInRoom(room_test_name, line)
assert.equal all_line.slice(1).join("\n"), manager.executeNoteShow(room_test_name, note_test_title, 3)
done()
it 'nothing show note', (done) ->
assert.equal null, manager.executeNoteShow(room_test_name, note_test_title)
done()
it 'when all note is end, show no exist message', (done) ->
for line in all_line
manager.executeStartNote(room_test_name, note_test_title + line)
manager.writeTextToNewestNoteInRoom(room_test_name, line)
manager.executeNoteStop(room_test_name, note_test_title + line)
assert.equal manager.executeNoteShow(room_test_name), null
done()
describe "executeNoteEnd()", ->
manager = undefined
beforeEach (done) ->
manager = new NoteManager robot
sinon.stub(manager, "saveNote").returns(true)
manager.executeStartNote(room_test_name, note_test_title)
done()
it 'end', (done) ->
assert.equal true, manager.executeNoteStop(room_test_name, note_test_title)
done()
it "don't exist started note", (done) ->
manager.executeNoteStop(room_test_name, note_test_title)
note = manager.executeGetStartedNote(room_test_name, note_test_title)
assert.equal note, null
done()
it 'already end', (done) ->
manager.executeNoteStop(room_test_name, note_test_title)
assert.equal false, manager.executeNoteStop(room_test_name, note_test_title)
done()