golden-layout
Version:
A multi-screen javascript Layout manager https://golden-layout.com
62 lines (51 loc) • 1.83 kB
JavaScript
describe( 'content items are abled to to emit events that bubble up the tree', function(){
var layout, selectionChangedSpy, stackA, stackB;
it( 'creates a layout', function(){
layout = testTools.createLayout({
content: [{
type: 'stack',
content: [{
type: 'column',
content:[{
type: 'component',
componentName: 'testComponent',
id: 'test'
},
{
type: 'component',
componentName: 'testComponent',
id: 'test'
}]
},{
type: 'row'
}]
}]
});
expect( layout.isInitialised ).toBe( true );
testTools.verifyPath( 'stack.0.column.0.stack.0.component', layout, expect );
testTools.verifyPath( 'stack.1.row', layout, expect );
});
it( 'attaches event listeners and retrieves stacks', function(){
var components = layout.root.getItemsById( 'test' );
expect( components.length ).toBe( 2 );
stackA = components[ 0 ].parent;
stackB = components[ 1 ].parent;
expect( stackA.type ).toBe( 'stack' );
expect( stackB.type ).toBe( 'stack' );
selectionChangedSpy = window.jasmine.createSpyObj( 'selectionChanged', ['onselectionChanged'] );
layout.on( 'selectionChanged', selectionChangedSpy.onselectionChanged );
});
it( 'clicks a header, but nothing happens since enableSelection == false', function(){
var headerElement = stackA.element.find( '.lm_header' );
expect( headerElement.length ).toBe( 1 );
expect( selectionChangedSpy.onselectionChanged.calls.length ).toBe( 0 );
expect( layout.selectedItem ).toBe( null );
expect( headerElement.hasClass( 'lm_selectable' ) ).toBe( false );
headerElement.trigger( 'click' );
expect( selectionChangedSpy.onselectionChanged.calls.length ).toBe( 0 );
expect( layout.selectedItem ).toBe( null );
});
it( 'destroys the layout', function(){
layout.destroy();
});
});