 describe "GitCheckoutFileContext", ->
   xdescribe "when an object in the tree is selected", ->
     it "calls CheckoutFile", ->
-      spyOn(contextPackageFinder, 'get').andReturn {selectedPath: mockSelectedPath}
+      spyOn(contextPackageFinder, 'get').andReturn {selectedPath: selectedFilePath}
       GitCheckoutFileContext repo
-      # expect(GitCheckoutFile).toHaveBeenCalledWith repo, file: mockSelectedPath
+      # expect(GitCheckoutFile).toHaveBeenCalledWith repo, file: selectedFilePath
 
   describe "when an object is not selected", ->
     it "notifies the user of the issue", ->

describe "GitDiffContext", ->
  xdescribe "when an object in the tree is selected", ->
    it "calls GitDiff", ->
      spyOn(contextPackageFinder, 'get').andReturn {selectedPath: mockSelectedPath}
      GitDiffContext repo
      # TODO: expect(GitDiff).toHaveBeenCalledWith repo, file: mockSelectedPath

  describe "when an object is not selected", ->
    it "notifies the user of the issue", ->

describe "GitAddAndCommitContext", ->
  describe "when an object in the tree is selected", ->
    it "calls git::add and GitCommit", ->
      spyOn(contextPackageFinder, 'get').andReturn {selectedPath: selectedFilePath}
      spyOn(git, 'add').andReturn Promise.resolve()
      GitAddAndCommitContext repo
      expect(git.add).toHaveBeenCalledWith repo, file: selectedFilePath
      # TODO: figure out how to validate GitCommit was called
      # expect(GitCommit).toHaveBeenCalledWith repo

