UNPKG

golden-layout

Version:

A multi-screen javascript Layout manager https://golden-layout.com

64 lines (53 loc) 1.96 kB
describe( 'The layout can be manipulated at runtime', function(){ var myLayout; it('Creates an initial layout', function(){ myLayout = testTools.createLayout({ content: [{ type: 'component', componentName: 'testComponent' }] }); }); it( 'has the right initial structure', function(){ testTools.verifyPath( 'stack.0.component', myLayout, expect ); }); it( 'adds a child to the stack', function(){ myLayout.root.contentItems[ 0 ].addChild({ type: 'component', componentName: 'testComponent' }); expect( myLayout.root.contentItems[ 0 ].contentItems.length ).toBe( 2 ); testTools.verifyPath( 'stack.1.component', myLayout, expect ); }); it( 'replaces a component with a row of components', function(){ var oldChild = myLayout.root.contentItems[ 0 ].contentItems[ 1 ]; var newChild = { type: 'row', content: [{ type: 'component', componentName: 'testComponent' }, { type: 'component', componentName: 'testComponent' }] }; myLayout.root.contentItems[ 0 ].replaceChild( oldChild, newChild ); testTools.verifyPath( 'stack.1.row.0.stack.0.component', myLayout, expect ); testTools.verifyPath( 'stack.1.row.1.stack.0.component', myLayout, expect ); }); it( 'Has setup parents correctly', function(){ var component = testTools.verifyPath( 'stack.1.row.1.stack.0.component', myLayout, expect ); expect( component.isComponent ).toBe( true ); expect( component.parent.isStack ).toBe( true ); expect( component.parent.parent.isRow ).toBe( true ); expect( component.parent.parent.parent.isStack ).toBe( true ); expect( component.parent.parent.parent.parent.isRoot ).toBe( true ); }); it( 'Destroys a component and its parent', function(){ var stack = testTools.verifyPath( 'stack.1.row.1.stack', myLayout, expect ); expect( stack.contentItems.length ).toBe( 1 ); stack.contentItems[ 0 ].remove(); expect( stack.contentItems.length ).toBe( 0 ); }); });