Ensure terminate handler is invoked only once

This commit is contained in:
Katrina Uychaco
2016-01-09 18:10:28 -08:00
parent d0be1965f2
commit 364205ca56
2 changed files with 20 additions and 0 deletions

View File

@@ -5835,3 +5835,22 @@ describe "TextEditor", ->
expect(editor1.isPending()).toBe false
expect(events).toEqual [editor1]
it "only calls terminate handler once when text is modified twice", ->
editor1.insertText('Some text')
advanceClock(500)
editor1.save()
editor1.insertText('More text')
advanceClock(500)
expect(editor1.isPending()).toBe false
expect(events).toEqual [editor1]
it "only calls terminate handler once when terminatePendingState is called twice", ->
editor1.terminatePendingState()
editor1.terminatePendingState()
expect(editor1.isPending()).toBe false
expect(events).toEqual [editor1]

View File

@@ -576,6 +576,7 @@ class TextEditor extends Model
@emitter.on 'did-terminate-pending-state', callback
terminatePendingState: ->
return if not @pending
@pending = false
@emitter.emit 'did-terminate-pending-state', this