@@ -371,6 +371,53 @@ describe('gridstack engine', function() {
371
371
} ) ;
372
372
} ) ;
373
373
374
+ describe ( 'test columnChanged and save' , function ( ) {
375
+ beforeAll ( function ( ) {
376
+ } ) ;
377
+ it ( 'wont\'t break layouts with 12 columns' , function ( ) {
378
+ engine = new GridStackEngine ( { column : 12 } ) ;
379
+ // Add two side-by-side components 6+6 = 12 columns
380
+ engine . addNode ( { x : 0 , y : 0 , w : 6 , h : 1 , id : "left" } ) ;
381
+ engine . addNode ( { x : 6 , y : 0 , w : 6 , h : 1 , id : "right" } ) ;
382
+ engine . save ( ) . forEach ( node => engine . nodeBoundFix ( findNode ( engine , node . id ! ) ! ) ) ;
383
+ expect ( findNode ( engine , "left" ) ) . toEqual ( jasmine . objectContaining ( { x : 0 , y : 0 , w : 6 , h : 1 } ) ) ;
384
+ expect ( findNode ( engine , "right" ) ) . toEqual ( jasmine . objectContaining ( { x : 6 , y : 0 , w : 6 , h : 1 } ) ) ;
385
+ // Resize to 1 column
386
+ engine . column = 1 ;
387
+ engine . columnChanged ( 12 , 1 ) ;
388
+ engine . save ( ) . forEach ( node => engine . nodeBoundFix ( findNode ( engine , node . id ! ) ! ) ) ;
389
+ expect ( findNode ( engine , "left" ) ) . toEqual ( jasmine . objectContaining ( { x : 0 , y : 0 , w : 1 , h : 1 } ) ) ;
390
+ expect ( findNode ( engine , "right" ) ) . toEqual ( jasmine . objectContaining ( { x : 0 , y : 1 , w : 1 , h : 1 } ) ) ;
391
+ // Resize back to 12 column
392
+ engine . column = 12 ;
393
+ engine . columnChanged ( 1 , 12 ) ;
394
+ engine . save ( ) . forEach ( node => engine . nodeBoundFix ( findNode ( engine , node . id ! ) ! ) ) ;
395
+ expect ( findNode ( engine , "left" ) ) . toEqual ( jasmine . objectContaining ( { x : 0 , y : 0 , w : 6 , h : 1 } ) ) ;
396
+ expect ( findNode ( engine , "right" ) ) . toEqual ( jasmine . objectContaining ( { x : 6 , y : 0 , w : 6 , h : 1 } ) ) ;
397
+ } ) ;
398
+ it ( 'wont\'t break layouts with more than 12 columns' , function ( ) {
399
+ engine = new GridStackEngine ( { column : 24 } ) ;
400
+ // Add two side-by-side components 12+12 = 24 columns
401
+ engine . addNode ( { x : 0 , y : 0 , w : 12 , h : 1 , id : "left" } ) ;
402
+ engine . addNode ( { x : 12 , y : 0 , w : 12 , h : 1 , id : "right" } ) ;
403
+ engine . save ( ) . forEach ( node => engine . nodeBoundFix ( findNode ( engine , node . id ! ) ! ) ) ;
404
+ expect ( findNode ( engine , "left" ) ) . toEqual ( jasmine . objectContaining ( { x : 0 , y : 0 , w : 12 , h : 1 } ) ) ;
405
+ expect ( findNode ( engine , "right" ) ) . toEqual ( jasmine . objectContaining ( { x : 12 , y : 0 , w : 12 , h : 1 } ) ) ;
406
+ // Resize to 1 column
407
+ engine . column = 1 ;
408
+ engine . columnChanged ( 24 , 1 ) ;
409
+ engine . save ( ) . forEach ( node => engine . nodeBoundFix ( findNode ( engine , node . id ! ) ! ) ) ;
410
+ expect ( findNode ( engine , "left" ) ) . toEqual ( jasmine . objectContaining ( { x : 0 , y : 0 , w : 1 , h : 1 } ) ) ;
411
+ expect ( findNode ( engine , "right" ) ) . toEqual ( jasmine . objectContaining ( { x : 0 , y : 1 , w : 1 , h : 1 } ) ) ;
412
+ // Resize back to 24 column
413
+ engine . column = 24 ;
414
+ engine . columnChanged ( 1 , 24 ) ;
415
+ engine . save ( ) . forEach ( node => engine . nodeBoundFix ( findNode ( engine , node . id ! ) ! ) ) ;
416
+ expect ( findNode ( engine , "left" ) ) . toEqual ( jasmine . objectContaining ( { x : 0 , y : 0 , w : 12 , h : 1 } ) ) ;
417
+ expect ( findNode ( engine , "right" ) ) . toEqual ( jasmine . objectContaining ( { x : 12 , y : 0 , w : 12 , h : 1 } ) ) ;
418
+ } ) ;
419
+ } ) ;
420
+
374
421
describe ( 'test compact' , function ( ) {
375
422
beforeAll ( function ( ) {
376
423
engine = new GridStackEngine ( ) ;
0 commit comments