@@ -108,27 +108,6 @@ describe('Column Pinning UI #grid', () => {
108
108
verifyColumnIsPinned ( column , false , 0 ) ;
109
109
} ) ;
110
110
111
- it ( 'Checks order of columns after unpinning' , ( ) => {
112
- for ( const column of grid . columnList ) {
113
- column . pin ( ) ;
114
- }
115
- fix . detectChanges ( ) ;
116
- grid . getColumnByName ( 'ID' ) . unpin ( ) ;
117
- grid . getColumnByName ( 'ReleaseDate' ) . unpin ( ) ;
118
- grid . getColumnByName ( 'Downloads' ) . unpin ( ) ;
119
- grid . getColumnByName ( 'ProductName' ) . unpin ( ) ;
120
- grid . getColumnByName ( 'Released' ) . unpin ( ) ;
121
- fix . detectChanges ( ) ;
122
- grid . unpinnedColumns . forEach ( ( column , index ) => {
123
- if ( index === grid . unpinnedColumns . length - 1 ) {
124
- return ;
125
- }
126
- expect (
127
- column . index < grid . unpinnedColumns [ index + 1 ] . index
128
- ) . toBe ( true ) ;
129
- } ) ;
130
- } ) ;
131
-
132
111
it ( 'reflects properly grid column pinned value changes.' , ( ) => {
133
112
const name = 'ReleaseDate' ;
134
113
verifyCheckbox ( name , false , false , columnChooserElement ) ;
@@ -307,6 +286,36 @@ describe('Column Pinning UI #grid', () => {
307
286
) . toBe ( true ) ;
308
287
} ) ;
309
288
} ) ;
289
+
290
+ it ( 'Checks order of columns after unpinning if there are hidden columns' , ( ) => {
291
+ // Columns are ordered like this: ID, ProductName, Downloads, Released, ReleaseDate
292
+ expect ( grid . getColumnByName ( 'Downloads' ) . index ) . toBe ( 2 ) ;
293
+ expect ( grid . getColumnByName ( 'Released' ) . index ) . toBe ( 3 ) ;
294
+
295
+ grid . getColumnByName ( 'ID' ) . hidden = true ;
296
+ grid . getColumnByName ( 'Downloads' ) . pin ( ) ;
297
+ grid . getColumnByName ( 'Released' ) . pin ( ) ;
298
+ fix . detectChanges ( ) ;
299
+
300
+ // unpinnedColumns contains only visible cols
301
+ expect ( grid . unpinnedColumns . length ) . toBe ( 2 ) ;
302
+ // _unpinnedColumns contains all unpinned cols (including hidden)
303
+ expect ( ( grid as any ) . _unpinnedColumns . length ) . toBe ( 3 ) ;
304
+
305
+ grid . getColumnByName ( 'Released' ) . unpin ( ) ;
306
+ fix . detectChanges ( ) ;
307
+
308
+ expect ( grid . unpinnedColumns . length ) . toBe ( 3 ) ;
309
+ expect ( ( grid as any ) . _unpinnedColumns . length ) . toBe ( 4 ) ;
310
+ // Downloads is still pinned; ID is not part of unpinnedColumns
311
+ expect ( grid . getColumnByName ( 'Released' ) . field ) . toEqual ( ( grid as any ) . unpinnedColumns [ 1 ] . field ) ;
312
+ expect ( grid . getColumnByName ( 'Released' ) . field ) . toEqual ( ( grid as any ) . _unpinnedColumns [ 2 ] . field ) ;
313
+
314
+ grid . getColumnByName ( 'Downloads' ) . unpin ( ) ;
315
+ fix . detectChanges ( ) ;
316
+ expect ( grid . getColumnByName ( 'Downloads' ) . field ) . toEqual ( ( grid as any ) . unpinnedColumns [ 1 ] . field ) ;
317
+ expect ( grid . getColumnByName ( 'Downloads' ) . field ) . toEqual ( ( grid as any ) . _unpinnedColumns [ 2 ] . field ) ;
318
+ } ) ;
310
319
} ) ;
311
320
312
321
describe ( 'Pinning with Column Groups' , ( ) => {
0 commit comments