@@ -699,6 +699,8 @@ describe('Tile Manager component', () => {
699699 row-start ="7 "
700700 row-span ="7 "
701701 disable-resize
702+ disable-fullscreen
703+ disable-maximize
702704 >
703705 Tile content 2
704706 </ igc-tile >
@@ -728,8 +730,8 @@ describe('Tile Manager component', () => {
728730 {
729731 colSpan : 10 ,
730732 colStart : 8 ,
731- disableFullscreen : false ,
732- disableMaximize : false ,
733+ disableFullscreen : true ,
734+ disableMaximize : true ,
733735 disableResize : true ,
734736 gridColumn : '8 / span 10' ,
735737 gridRow : '7 / span 7' ,
@@ -756,15 +758,15 @@ describe('Tile Manager component', () => {
756758 disableResize : true ,
757759 gridColumn : '1 / span 5' ,
758760 gridRow : '1 / span 5' ,
759- maximized : false ,
761+ maximized : true ,
760762 position : 0 ,
761763 rowSpan : 5 ,
762764 rowStart : 1 ,
763765 tileId : 'custom-id1' ,
764766 } ,
765767 {
766768 colSpan : 3 ,
767- colStart : null ,
769+ colStart : 7 ,
768770 disableFullscreen : false ,
769771 disableMaximize : false ,
770772 disableResize : false ,
@@ -773,7 +775,7 @@ describe('Tile Manager component', () => {
773775 maximized : false ,
774776 position : 1 ,
775777 rowSpan : 3 ,
776- rowStart : null ,
778+ rowStart : 7 ,
777779 tileId : 'custom-id2' ,
778780 } ,
779781 {
@@ -803,21 +805,21 @@ describe('Tile Manager component', () => {
803805 expect ( tiles [ 0 ] . disableFullscreen ) . is . false ;
804806 expect ( tiles [ 0 ] . disableMaximize ) . is . false ;
805807 expect ( tiles [ 0 ] . disableResize ) . is . true ;
806- expect ( tiles [ 0 ] . maximized ) . is . false ;
808+ expect ( tiles [ 0 ] . maximized ) . is . true ;
807809 expect ( tiles [ 0 ] . position ) . to . equal ( 0 ) ;
808810 expect ( tiles [ 0 ] . rowSpan ) . to . equal ( 5 ) ;
809811 expect ( tiles [ 0 ] . rowStart ) . to . equal ( 1 ) ;
810812 expect ( tiles [ 0 ] . tileId ) . to . equal ( 'custom-id1' ) ;
811813
812814 expect ( tiles [ 1 ] . colSpan ) . to . equal ( 3 ) ;
813- expect ( tiles [ 1 ] . colStart ) . is . null ;
814- expect ( tiles [ 0 ] . disableFullscreen ) . is . false ;
815- expect ( tiles [ 0 ] . disableMaximize ) . is . false ;
815+ expect ( tiles [ 1 ] . colStart ) . to . equal ( 7 ) ;
816+ expect ( tiles [ 1 ] . disableFullscreen ) . is . false ;
817+ expect ( tiles [ 1 ] . disableMaximize ) . is . false ;
816818 expect ( tiles [ 1 ] . disableResize ) . is . false ;
817819 expect ( tiles [ 1 ] . maximized ) . is . false ;
818820 expect ( tiles [ 1 ] . position ) . to . equal ( 1 ) ;
819821 expect ( tiles [ 1 ] . rowSpan ) . to . equal ( 3 ) ;
820- expect ( tiles [ 1 ] . rowStart ) . is . null ;
822+ expect ( tiles [ 1 ] . rowStart ) . to . equal ( 7 ) ;
821823 expect ( tiles [ 1 ] . tileId ) . to . equal ( 'custom-id2' ) ;
822824
823825 const firstTileStyles = window . getComputedStyle ( tiles [ 0 ] ) ;
@@ -828,6 +830,40 @@ describe('Tile Manager component', () => {
828830 expect ( secondTileStyles . gridColumn ) . to . equal ( 'span 3' ) ;
829831 expect ( secondTileStyles . gridRow ) . to . equal ( 'span 3' ) ;
830832 } ) ;
833+
834+ it ( 'should handle tiles with missing tileId correctly when deserializing' , async ( ) => {
835+ const tilesData = [
836+ {
837+ colSpan : 4 ,
838+ rowSpan : 4 ,
839+ position : 0 ,
840+ } ,
841+ {
842+ colSpan : 2 ,
843+ rowSpan : 2 ,
844+ position : 1 ,
845+ tileId : 'custom-id1' ,
846+ } ,
847+ ] ;
848+
849+ tileManager . loadLayout ( JSON . stringify ( tilesData ) ) ;
850+ await elementUpdated ( tileManager ) ;
851+
852+ const tiles = tileManager . tiles ;
853+
854+ for ( const tile of tiles ) {
855+ expect ( tile . tileId ) . to . not . be . empty ;
856+ expect ( tile . colSpan ) . not . equal ( 4 ) ;
857+ }
858+ } ) ;
859+
860+ it ( 'should not throw an error when passing undefined data to `loadLayout`' , async ( ) => {
861+ const tilesData = undefined ;
862+
863+ expect ( ( ) =>
864+ tileManager . loadLayout ( JSON . stringify ( tilesData ) )
865+ ) . not . to . throw ( ) ;
866+ } ) ;
831867 } ) ;
832868
833869 describe ( 'API' , ( ) => {
0 commit comments