diff --git a/src/extensions/tabs/spec/tabs-spec.coffee b/src/extensions/tabs/spec/tabs-spec.coffee index 96bd28999..d4d74e3a2 100644 --- a/src/extensions/tabs/spec/tabs-spec.coffee +++ b/src/extensions/tabs/spec/tabs-spec.coffee @@ -52,3 +52,10 @@ fdescribe "Tabs", -> rootView.open('two-hundred.txt') expect(tabs.find('.tab').length).toBe 3 expect(tabs.find('.tab:eq(2) .file-name').text()).toBe 'two-hundred.txt' + + describe "when an edit session is removed", -> + it "removes the tab for the removed edit session", -> + editor.setActiveEditSessionIndex(0) + editor.destroyActiveEditSession() + expect(tabs.find('.tab').length).toBe 1 + expect(tabs.find('.tab:eq(0) .file-name').text()).toBe 'sample.txt' diff --git a/src/extensions/tabs/src/tabs.coffee b/src/extensions/tabs/src/tabs.coffee index 25a383755..2dd7fc2ff 100644 --- a/src/extensions/tabs/src/tabs.coffee +++ b/src/extensions/tabs/src/tabs.coffee @@ -25,6 +25,7 @@ class Tabs extends View @setActiveTab(@editor.getActiveEditSessionIndex()) @editor.on 'editor:active-edit-session-changed', (e, editSession, index) => @setActiveTab(index) @editor.on 'editor:edit-session-added', (e, editSession) => @addTabForEditSession(editSession) + @editor.on 'editor:edit-session-removed', (e, editSession, index) => @removeTabAtIndex(index) addTabForEditSession: (editSession) -> @append $$ -> @@ -34,3 +35,6 @@ class Tabs extends View setActiveTab: (index) -> @find(".tab.active").removeClass('active') @find(".tab:eq(#{index})").addClass('active') + + removeTabAtIndex: (index) -> + @find(".tab:eq(#{index})").remove()