           editSession.toggleLineCommentsInSelection()
           expect(buffer.lineForRow(10)).toBe "  "
 
-      xdescribe ".undo() and .redo()", ->
+      describe ".undo() and .redo()", ->
         it "undoes/redoes the last change", ->
           editSession.insertText("foo")
           editSession.undo()

          expect(editSession.isFoldedAtBufferRow(1)).toBeFalsy()
          expect(editSession.isFoldedAtBufferRow(2)).toBeTruthy()

      xdescribe ".transact([fn])", ->
        describe "when called without a function", ->
          it "restores the selection when the transaction is undone/redone", ->
            buffer.setText('1234')
            editSession.setSelectedBufferRange([[0, 1], [0, 3]])
            editSession.transact()

            editSession.delete()
            editSession.moveCursorToEndOfLine()
            editSession.insertText('5')
            expect(buffer.getText()).toBe '145'

            editSession.commit()

            editSession.undo()
            expect(buffer.getText()).toBe '1234'
            expect(editSession.getSelectedBufferRange()).toEqual [[0, 1], [0, 3]]

            editSession.redo()
            expect(buffer.getText()).toBe '145'
            expect(editSession.getSelectedBufferRange()).toEqual [[0, 3], [0, 3]]

      describe "when the buffer is changed (via its direct api, rather than via than edit session)", ->
        it "moves the cursor so it is in the same relative position of the buffer", ->

          expect(buffer.lineForRow(6)).toBe(line7)
          expect(buffer.getLineCount()).toBe(count - 1)

      describe "when the line being deleted preceeds a fold, and the command is undone", ->
        it "restores the line and preserves the fold", ->
          editSession.setCursorBufferPosition([4])
          editSession.foldCurrentRow()
