UNPKG

hubot-note

Version:

hubot note taking script

179 lines (136 loc) 5.89 kB
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) -> @clock = 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()