1
1
import { userEvent } from '@vitest/browser/context' ;
2
2
3
3
import type { Column } from '../../../src' ;
4
- import { getCellsAtRowIndexOld , getHeaderCells , setup , validateCellPositionOld } from '../utils' ;
4
+ import { getCellsAtRowIndex , getHeaderCells , setup , validateCellPosition } from '../utils' ;
5
5
6
6
describe ( 'colSpan' , ( ) => {
7
7
function setupColSpanGrid ( colCount = 15 ) {
@@ -43,7 +43,7 @@ describe('colSpan', () => {
43
43
expect ( getHeaderCells ( ) ) . toHaveLength ( 13 ) ;
44
44
45
45
// top summary rows
46
- const topSummarryRow1 = getCellsAtRowIndexOld ( 0 ) ;
46
+ const topSummarryRow1 = getCellsAtRowIndex ( 0 ) ;
47
47
expect ( topSummarryRow1 ) . toHaveLength ( 14 ) ;
48
48
// 7th-8th cells are merged
49
49
expect ( topSummarryRow1 [ 7 ] ) . toHaveAttribute ( 'aria-colindex' , '8' ) ;
@@ -52,10 +52,10 @@ describe('colSpan', () => {
52
52
'grid-column-start' : '8' ,
53
53
'grid-column-end' : '10'
54
54
} ) ;
55
- expect ( getCellsAtRowIndexOld ( 1 ) ) . toHaveLength ( 15 ) ;
55
+ expect ( getCellsAtRowIndex ( 1 ) ) . toHaveLength ( 15 ) ;
56
56
57
57
// rows
58
- const row1 = getCellsAtRowIndexOld ( 3 ) ;
58
+ const row1 = getCellsAtRowIndex ( 3 ) ;
59
59
expect ( row1 ) . toHaveLength ( 14 ) ;
60
60
// 7th-8th cells are merged
61
61
expect ( row1 [ 6 ] ) . toHaveAttribute ( 'aria-colindex' , '7' ) ;
@@ -68,7 +68,7 @@ describe('colSpan', () => {
68
68
expect ( row1 [ 7 ] ) . not . toHaveAttribute ( 'aria-colspan' ) ;
69
69
70
70
// 3rd-5th, 7th-8th cells are merged
71
- const row2 = getCellsAtRowIndexOld ( 4 ) ;
71
+ const row2 = getCellsAtRowIndex ( 4 ) ;
72
72
expect ( row2 ) . toHaveLength ( 12 ) ;
73
73
expect ( row2 [ 2 ] ) . toHaveAttribute ( 'aria-colindex' , '3' ) ;
74
74
expect ( row2 [ 2 ] ) . toHaveStyle ( {
@@ -84,95 +84,95 @@ describe('colSpan', () => {
84
84
} ) ;
85
85
expect ( row2 [ 5 ] ) . toHaveAttribute ( 'aria-colindex' , '9' ) ;
86
86
87
- expect ( getCellsAtRowIndexOld ( 6 ) ) . toHaveLength ( 14 ) ; // colSpan 6 won't work as there are 5 frozen columns
88
- expect ( getCellsAtRowIndexOld ( 7 ) ) . toHaveLength ( 10 ) ;
87
+ expect ( getCellsAtRowIndex ( 6 ) ) . toHaveLength ( 14 ) ; // colSpan 6 won't work as there are 5 frozen columns
88
+ expect ( getCellsAtRowIndex ( 7 ) ) . toHaveLength ( 10 ) ;
89
89
90
90
// bottom summary row
91
- expect ( getCellsAtRowIndexOld ( 12 ) ) . toHaveLength ( 14 ) ;
92
- expect ( getCellsAtRowIndexOld ( 13 ) ) . toHaveLength ( 15 ) ;
91
+ expect ( getCellsAtRowIndex ( 12 ) ) . toHaveLength ( 14 ) ;
92
+ expect ( getCellsAtRowIndex ( 13 ) ) . toHaveLength ( 15 ) ;
93
93
} ) ;
94
94
95
95
it ( 'should navigate between merged cells' , async ( ) => {
96
96
setupColSpanGrid ( ) ;
97
97
// header row
98
98
await userEvent . click ( getHeaderCells ( ) [ 7 ] ) ;
99
- validateCellPositionOld ( 7 , 0 ) ;
99
+ validateCellPosition ( 7 , 0 ) ;
100
100
await userEvent . keyboard ( '{arrowright}' ) ;
101
- validateCellPositionOld ( 8 , 0 ) ;
101
+ validateCellPosition ( 8 , 0 ) ;
102
102
await userEvent . keyboard ( '{arrowright}' ) ;
103
- validateCellPositionOld ( 11 , 0 ) ;
103
+ validateCellPosition ( 11 , 0 ) ;
104
104
await userEvent . keyboard ( '{arrowright}' ) ;
105
- validateCellPositionOld ( 12 , 0 ) ;
105
+ validateCellPosition ( 12 , 0 ) ;
106
106
await userEvent . keyboard ( '{arrowleft}{arrowleft}{arrowleft}' ) ;
107
- validateCellPositionOld ( 7 , 0 ) ;
107
+ validateCellPosition ( 7 , 0 ) ;
108
108
109
109
// top summary rows
110
- await userEvent . click ( getCellsAtRowIndexOld ( 0 ) [ 6 ] ) ;
111
- validateCellPositionOld ( 6 , 1 ) ;
110
+ await userEvent . click ( getCellsAtRowIndex ( 0 ) [ 6 ] ) ;
111
+ validateCellPosition ( 6 , 1 ) ;
112
112
await userEvent . keyboard ( '{arrowright}' ) ;
113
- validateCellPositionOld ( 7 , 1 ) ;
113
+ validateCellPosition ( 7 , 1 ) ;
114
114
await userEvent . keyboard ( '{arrowright}' ) ;
115
- validateCellPositionOld ( 9 , 1 ) ;
115
+ validateCellPosition ( 9 , 1 ) ;
116
116
await userEvent . keyboard ( '{arrowright}' ) ;
117
- validateCellPositionOld ( 10 , 1 ) ;
117
+ validateCellPosition ( 10 , 1 ) ;
118
118
await userEvent . keyboard ( '{arrowleft}{arrowleft}{arrowleft}' ) ;
119
- validateCellPositionOld ( 6 , 1 ) ;
119
+ validateCellPosition ( 6 , 1 ) ;
120
120
121
121
// viewport rows
122
- await userEvent . click ( getCellsAtRowIndexOld ( 3 ) [ 1 ] ) ;
123
- validateCellPositionOld ( 1 , 4 ) ;
122
+ await userEvent . click ( getCellsAtRowIndex ( 3 ) [ 1 ] ) ;
123
+ validateCellPosition ( 1 , 4 ) ;
124
124
await userEvent . keyboard ( '{arrowright}' ) ;
125
- validateCellPositionOld ( 2 , 4 ) ;
125
+ validateCellPosition ( 2 , 4 ) ;
126
126
await userEvent . keyboard ( '{arrowright}' ) ;
127
- validateCellPositionOld ( 3 , 4 ) ;
127
+ validateCellPosition ( 3 , 4 ) ;
128
128
await userEvent . keyboard ( '{arrowdown}' ) ;
129
- validateCellPositionOld ( 2 , 5 ) ;
129
+ validateCellPosition ( 2 , 5 ) ;
130
130
await userEvent . keyboard ( '{arrowleft}' ) ;
131
- validateCellPositionOld ( 1 , 5 ) ;
131
+ validateCellPosition ( 1 , 5 ) ;
132
132
await userEvent . keyboard ( '{arrowright}' ) ;
133
- validateCellPositionOld ( 2 , 5 ) ;
133
+ validateCellPosition ( 2 , 5 ) ;
134
134
await userEvent . keyboard ( '{arrowright}' ) ;
135
- validateCellPositionOld ( 5 , 5 ) ;
135
+ validateCellPosition ( 5 , 5 ) ;
136
136
await userEvent . keyboard ( '{arrowleft}' ) ;
137
- validateCellPositionOld ( 2 , 5 ) ;
137
+ validateCellPosition ( 2 , 5 ) ;
138
138
await userEvent . keyboard ( '{arrowdown}' ) ;
139
- validateCellPositionOld ( 2 , 6 ) ;
139
+ validateCellPosition ( 2 , 6 ) ;
140
140
await userEvent . keyboard ( '{arrowdown}{arrowdown}' ) ;
141
- validateCellPositionOld ( 0 , 8 ) ;
141
+ validateCellPosition ( 0 , 8 ) ;
142
142
await userEvent . keyboard ( '{arrowLeft}' ) ;
143
- validateCellPositionOld ( 0 , 8 ) ;
143
+ validateCellPosition ( 0 , 8 ) ;
144
144
await userEvent . keyboard ( '{arrowright}' ) ;
145
- validateCellPositionOld ( 5 , 8 ) ;
145
+ validateCellPosition ( 5 , 8 ) ;
146
146
await userEvent . tab ( { shift : true } ) ;
147
147
await userEvent . tab ( { shift : true } ) ;
148
- validateCellPositionOld ( 14 , 7 ) ;
148
+ validateCellPosition ( 14 , 7 ) ;
149
149
await userEvent . tab ( ) ;
150
- validateCellPositionOld ( 0 , 8 ) ;
151
- await userEvent . click ( getCellsAtRowIndexOld ( 10 ) [ 11 ] ) ;
152
- validateCellPositionOld ( 11 , 11 ) ;
150
+ validateCellPosition ( 0 , 8 ) ;
151
+ await userEvent . click ( getCellsAtRowIndex ( 10 ) [ 11 ] ) ;
152
+ validateCellPosition ( 11 , 11 ) ;
153
153
await userEvent . tab ( ) ;
154
- validateCellPositionOld ( 12 , 11 ) ;
154
+ validateCellPosition ( 12 , 11 ) ;
155
155
await userEvent . tab ( ) ;
156
- validateCellPositionOld ( 0 , 12 ) ;
156
+ validateCellPosition ( 0 , 12 ) ;
157
157
await userEvent . tab ( { shift : true } ) ;
158
- validateCellPositionOld ( 12 , 11 ) ;
158
+ validateCellPosition ( 12 , 11 ) ;
159
159
160
160
// bottom summary rows
161
- await userEvent . click ( getCellsAtRowIndexOld ( 12 ) [ 6 ] ) ;
162
- validateCellPositionOld ( 6 , 13 ) ;
161
+ await userEvent . click ( getCellsAtRowIndex ( 12 ) [ 6 ] ) ;
162
+ validateCellPosition ( 6 , 13 ) ;
163
163
await userEvent . keyboard ( '{arrowright}' ) ;
164
- validateCellPositionOld ( 7 , 13 ) ;
164
+ validateCellPosition ( 7 , 13 ) ;
165
165
await userEvent . keyboard ( '{arrowright}' ) ;
166
- validateCellPositionOld ( 9 , 13 ) ;
166
+ validateCellPosition ( 9 , 13 ) ;
167
167
await userEvent . keyboard ( '{arrowright}' ) ;
168
- validateCellPositionOld ( 10 , 13 ) ;
168
+ validateCellPosition ( 10 , 13 ) ;
169
169
await userEvent . keyboard ( '{arrowleft}{arrowleft}{arrowleft}' ) ;
170
- validateCellPositionOld ( 6 , 13 ) ;
170
+ validateCellPosition ( 6 , 13 ) ;
171
171
} ) ;
172
172
173
173
it ( 'should scroll to the merged cell when selected' , async ( ) => {
174
174
setupColSpanGrid ( 30 ) ;
175
- await userEvent . click ( getCellsAtRowIndexOld ( 10 ) [ 23 ] ) ; // last visible cell (1920/80)
175
+ await userEvent . click ( getCellsAtRowIndex ( 10 ) [ 23 ] ) ; // last visible cell (1920/80)
176
176
const spy = vi . spyOn ( window . HTMLElement . prototype , 'scrollIntoView' ) ;
177
177
const testScrollIntoView = ( ) => {
178
178
expect ( spy ) . toHaveBeenCalled ( ) ;
@@ -182,13 +182,13 @@ describe('colSpan', () => {
182
182
testScrollIntoView ( ) ;
183
183
await navigate ( 1 ) ;
184
184
testScrollIntoView ( ) ; // should bring the merged cell into view
185
- validateCellPositionOld ( 27 , 11 ) ;
185
+ validateCellPosition ( 27 , 11 ) ;
186
186
await navigate ( 7 ) ;
187
187
testScrollIntoView ( ) ;
188
- validateCellPositionOld ( 6 , 12 ) ; // should navigate to the next row
188
+ validateCellPosition ( 6 , 12 ) ; // should navigate to the next row
189
189
await navigate ( 7 , true ) ;
190
190
testScrollIntoView ( ) ;
191
- validateCellPositionOld ( 27 , 11 ) ; // should navigate to the previous row
191
+ validateCellPosition ( 27 , 11 ) ; // should navigate to the previous row
192
192
await navigate ( 27 ) ;
193
193
testScrollIntoView ( ) ;
194
194
await navigate ( 1 ) ;
0 commit comments