When a buffer's file name changes, its tabs are updated

This commit is contained in:
Nathan Sobo
2012-11-20 16:32:26 -07:00
parent e1f4d2954c
commit 423e8b9dcb
3 changed files with 30 additions and 4 deletions

View File

@@ -2,6 +2,7 @@ $ = require 'jquery'
_ = require 'underscore'
RootView = require 'root-view'
Tabs = require 'tabs'
fs = require 'fs'
describe "Tabs", ->
[rootView, editor, statusBar, buffer, tabs] = []
@@ -67,3 +68,18 @@ describe "Tabs", ->
expect(editor.getActiveEditSessionIndex()).toBe 0
tabs.find('.tab:eq(1)').click()
expect(editor.getActiveEditSessionIndex()).toBe 1
describe "when a file name associated with a tab changes", ->
[buffer, newPath] = []
beforeEach ->
buffer = editor.editSessions[0].buffer
oldPath = buffer.getPath()
newPath = oldPath.replace(/sample.js$/, "foobar.js")
afterEach ->
fs.remove(newPath)
fit "updates the file name in the tab", ->
buffer.saveAs(newPath)
expect(tabs.find('.tab:first .file-name')).toHaveText "foobar.js"

View File

@@ -0,0 +1,11 @@
{View} = require 'space-pen'
module.exports =
class Tab extends View
@content: (editSession) ->
@div class: 'tab', =>
@div editSession.buffer.getBaseName(), class: 'file-name', outlet: 'fileName'
initialize: (@editSession) ->
@editSession.on 'buffer-path-change.tab', =>
@fileName.text(@editSession.buffer.getBaseName())

View File

@@ -1,5 +1,6 @@
$ = require 'jquery'
{View, $$} = require 'space-pen'
{View} = require 'space-pen'
Tab = require 'tabs/src/tab'
module.exports =
class Tabs extends View
@@ -32,9 +33,7 @@ class Tabs extends View
@editor.setActiveEditSessionIndex($(e.target).closest('.tab').index())
addTabForEditSession: (editSession) ->
@append $$ ->
@div class: 'tab', =>
@div editSession.buffer.getBaseName(), class: 'file-name'
@append(new Tab(editSession))
setActiveTab: (index) ->
@find(".tab.active").removeClass('active')