From 27f17318d7083cdffeb25fa70e6b3cecd806fdde Mon Sep 17 00:00:00 2001 From: Linus Eriksson Date: Thu, 24 Aug 2017 13:40:24 +0200 Subject: [PATCH] Don't attempt to move undefined items when splitting panes --- spec/pane-spec.js | 26 ++++++++++++++++++++++++++ src/pane.coffee | 2 +- 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/spec/pane-spec.js b/spec/pane-spec.js index 5000cd50c..08f68fbe7 100644 --- a/spec/pane-spec.js +++ b/spec/pane-spec.js @@ -1152,6 +1152,32 @@ describe('Pane', () => { }) }) + describe('when the pane is empty', () => { + describe('when `moveActiveItem: true` is passed in the params', () => { + it('gracefully ignores the moveActiveItem parameter', () => { + pane1.destroyItem(item1) + expect(pane1.getActiveItem()).toBe(undefined) + + const pane2 = pane1.split('horizontal', 'before', {moveActiveItem: true}) + expect(container.root.children).toEqual([pane2, pane1]) + + expect(pane2.getActiveItem()).toBe(undefined) + }) + }) + + describe('when `copyActiveItem: true` is passed in the params', () => { + it('gracefully ignores the copyActiveItem parameter', () => { + pane1.destroyItem(item1) + expect(pane1.getActiveItem()).toBe(undefined) + + const pane2 = pane1.split('horizontal', 'before', {copyActiveItem: true}) + expect(container.root.children).toEqual([pane2, pane1]) + + expect(pane2.getActiveItem()).toBe(undefined) + }) + }) + }) + it('activates the new pane', () => { expect(pane1.isActive()).toBe(true) const pane2 = pane1.splitRight() diff --git a/src/pane.coffee b/src/pane.coffee index 2c0ce947e..6ac3ef359 100644 --- a/src/pane.coffee +++ b/src/pane.coffee @@ -888,7 +888,7 @@ class Pane when 'before' then @parent.insertChildBefore(this, newPane) when 'after' then @parent.insertChildAfter(this, newPane) - @moveItemToPane(@activeItem, newPane) if params?.moveActiveItem + @moveItemToPane(@activeItem, newPane) if params?.moveActiveItem and @activeItem newPane.activate() newPane