diff --git a/test/TabbedAreaSpec.js b/test/TabbedAreaSpec.js index 5d8cf7c065..876b09dcb8 100644 --- a/test/TabbedAreaSpec.js +++ b/test/TabbedAreaSpec.js @@ -4,6 +4,7 @@ import TabbedArea from '../src/TabbedArea'; import NavItem from '../src/NavItem'; import TabPane from '../src/TabPane'; import ValidComponentChildren from '../src/utils/ValidComponentChildren'; +import { render } from './helpers'; describe('TabbedArea', function () { it('Should show the correct tab', function () { @@ -230,6 +231,48 @@ describe('TabbedArea', function () { assert.equal(tabbedArea.refs.tabs.props.activeKey, 2); }); + describe('animation', function () { + let mountPoint; + + beforeEach(()=>{ + mountPoint = document.createElement('div'); + document.body.appendChild(mountPoint); + }); + + afterEach(function () { + React.unmountComponentAtNode(mountPoint); + document.body.removeChild(mountPoint); + }); + + function checkTabRemovingWithAnimation(animation) { + it(`should correctly set "active" after tabPane is removed with "animation=${animation}"`, function() { + let instance = render( + + Tab 1 content + Tab 2 content + + , mountPoint); + + let panes = ReactTestUtils.scryRenderedComponentsWithType(instance, TabPane); + + assert.equal(panes[0].props.active, false); + assert.equal(panes[1].props.active, true); + + // second tab has been removed + render( + + Tab 1 content + + , mountPoint); + + assert.equal(panes[0].props.active, true); + }); + } + + checkTabRemovingWithAnimation(true); + checkTabRemovingWithAnimation(false); + }); + describe('Web Accessibility', function(){ it('Should generate ids from parent id', function () {