@@ -72,7 +72,7 @@ describe('IgxGridState - input properties #grid', () => {
72
72
73
73
it ( 'getState should return corect JSON string' , ( ) => {
74
74
// tslint:disable-next-line:max-line-length
75
- const initialGridState = '{"columns":[{"pinned":true,"sortable":true,"filterable":true,"editable":false,"sortingIgnoreCase":true,"filteringIgnoreCase":true,"headerClasses":"testCss","headerGroupClasses":"","maxWidth":"300px","groupable":false,"movable":true,"hidden":false,"dataType":"number","hasSummary":false,"field":"ProductID","width":"150px","header":"Product ID","resizable":true,"searchable":false},{"pinned":false,"sortable":true,"filterable":true,"editable":false,"sortingIgnoreCase":true,"filteringIgnoreCase":true,"headerClasses":"","headerGroupClasses":"","maxWidth":"300px","groupable":true,"movable":true,"hidden":false,"dataType":"string","hasSummary":false,"field":"ProductName","width":"150px","header":"Prodyct Name","resizable":true,"searchable":true},{"pinned":false,"sortable":false,"filterable":true,"editable":true,"sortingIgnoreCase":true,"filteringIgnoreCase":true,"headerClasses":"","headerGroupClasses":"","maxWidth":"300px","groupable":false,"movable":false,"hidden":false,"dataType":"boolean","hasSummary":true,"field":"InStock","width":"140px","header":"In Stock","resizable":true,"searchable":true},{"pinned":false,"sortable":true,"filterable":false,"editable":true,"sortingIgnoreCase":true,"filteringIgnoreCase":true,"headerClasses":"","headerGroupClasses":"","maxWidth":"300px","groupable":true,"movable":false,"hidden":false,"dataType":"date","hasSummary":false,"field":"OrderDate","width":"110px","header":"Date ordered","resizable":false,"searchable":true}],"filtering":{"filteringOperands":[],"operator":0},"sorting":[],"groupBy":{"expressions":[],"expansion":[],"defaultExpanded":true},"paging":{"index":0,"recordsPerPage":15,"metadata":{"countPages":1,"countRecords":10,"error":0}},"cellSelection":[],"rowSelection":[],"columnSelection":[]}' ;
75
+ const initialGridState = '{"columns":[{"pinned":true,"sortable":true,"filterable":true,"editable":false,"sortingIgnoreCase":true,"filteringIgnoreCase":true,"headerClasses":"testCss","headerGroupClasses":"","maxWidth":"300px","groupable":false,"movable":true,"hidden":false,"dataType":"number","hasSummary":false,"field":"ProductID","width":"150px","header":"Product ID","resizable":true,"searchable":false},{"pinned":false,"sortable":true,"filterable":true,"editable":false,"sortingIgnoreCase":true,"filteringIgnoreCase":true,"headerClasses":"","headerGroupClasses":"","maxWidth":"300px","groupable":true,"movable":true,"hidden":false,"dataType":"string","hasSummary":false,"field":"ProductName","width":"150px","header":"Prodyct Name","resizable":true,"searchable":true},{"pinned":false,"sortable":false,"filterable":true,"editable":true,"sortingIgnoreCase":true,"filteringIgnoreCase":true,"headerClasses":"","headerGroupClasses":"","maxWidth":"300px","groupable":false,"movable":false,"hidden":false,"dataType":"boolean","hasSummary":true,"field":"InStock","width":"140px","header":"In Stock","resizable":true,"searchable":true},{"pinned":false,"sortable":true,"filterable":false,"editable":true,"sortingIgnoreCase":true,"filteringIgnoreCase":true,"headerClasses":"","headerGroupClasses":"","maxWidth":"300px","groupable":true,"movable":false,"hidden":false,"dataType":"date","hasSummary":false,"field":"OrderDate","width":"110px","header":"Date ordered","resizable":false,"searchable":true}],"filtering":{"filteringOperands":[],"operator":0},"sorting":[],"groupBy":{"expressions":[],"expansion":[],"defaultExpanded":true},"paging":{"index":0,"recordsPerPage":15,"metadata":{"countPages":1,"countRecords":10,"error":0}},"cellSelection":[],"rowSelection":[],"columnSelection":[],"rowPinning":[]}' ;
76
76
const fix = TestBed . createComponent ( IgxGridStateComponent ) ;
77
77
fix . detectChanges ( ) ;
78
78
@@ -392,6 +392,30 @@ describe('IgxGridState - input properties #grid', () => {
392
392
expect ( gridState ) . toBe ( rowSelectionState ) ;
393
393
} ) ;
394
394
395
+ it ( 'setState should correctly restore grid row pinning state from object' , ( ) => {
396
+ const fix = TestBed . createComponent ( IgxGridStateComponent ) ;
397
+ fix . detectChanges ( ) ;
398
+ const grid = fix . componentInstance . grid ;
399
+ grid . primaryKey = 'ProductID' ;
400
+ fix . detectChanges ( ) ;
401
+ const state = fix . componentInstance . state ;
402
+ const rowPinState = '{"rowPinning":[1,3]}' ;
403
+ const initialState = '{"rowPinning":[]}' ;
404
+ const rowPinStateObject = JSON . parse ( rowPinState ) ;
405
+
406
+ let gridState = state . getState ( true , 'rowPinning' ) ;
407
+ expect ( gridState ) . toBe ( initialState ) ;
408
+
409
+ state . setState ( rowPinStateObject ) ;
410
+ fix . detectChanges ( ) ;
411
+
412
+ expect ( grid . pinnedRows . length ) . toBe ( 2 ) ;
413
+ expect ( grid . pinnedRows [ 0 ] . rowID ) . toBe ( 1 ) ;
414
+ expect ( grid . pinnedRows [ 1 ] . rowID ) . toBe ( 3 ) ;
415
+ gridState = state . getState ( true , 'rowPinning' ) ;
416
+ expect ( gridState ) . toBe ( rowPinState ) ;
417
+ } ) ;
418
+
395
419
it ( 'setState should correctly restore grid cell selection state from string' , ( ) => {
396
420
const fix = TestBed . createComponent ( IgxGridStateComponent ) ;
397
421
fix . detectChanges ( ) ;
0 commit comments