Skip to content

Commit cf8d323

Browse files
committed
tests(serialization): modify tests to cover more props and add load scenarios
1 parent 350fe67 commit cf8d323

File tree

1 file changed

+46
-10
lines changed

1 file changed

+46
-10
lines changed

src/components/tile-manager/tile-manager.spec.ts

Lines changed: 46 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)