@@ -19,104 +19,110 @@ const getSelector = (state: State) => {
19
19
}
20
20
} ;
21
21
22
- export default class DashTable {
23
- static getCell ( row : number , column : number , editable : State = State . Ready ) {
24
- return cy . get ( `#table ${ getSelector ( editable ) } tbody tr td.column-${ column } ` ) . eq ( row ) ;
22
+ export class DashTableHelper {
23
+ constructor ( private readonly id ) {
24
+
25
+ }
26
+
27
+ public getCell ( row : number , column : number , editable : State = State . Ready ) {
28
+ return cy . get ( `#${ this . id } ${ getSelector ( editable ) } tbody tr td.column-${ column } ` ) . eq ( row ) ;
25
29
}
26
30
27
- static getCellById ( row : number , column : string , editable : State = State . Ready ) {
28
- return cy . get ( `#table ${ getSelector ( editable ) } tbody tr td[data-dash-column="${ column } "]` ) . eq ( row ) ;
31
+ public getCellById ( row : number , column : string , editable : State = State . Ready ) {
32
+ return cy . get ( `#${ this . id } ${ getSelector ( editable ) } tbody tr td[data-dash-column="${ column } "]` ) . eq ( row ) ;
29
33
}
30
34
31
- static getFilter ( column : number , editable : State = State . Ready ) {
32
- return cy . get ( `#table ${ getSelector ( editable ) } tbody tr th.dash-filter.column-${ column } ` ) ;
35
+ public getFilter ( column : number , editable : State = State . Ready ) {
36
+ return cy . get ( `#${ this . id } ${ getSelector ( editable ) } tbody tr th.dash-filter.column-${ column } ` ) ;
33
37
}
34
38
35
- static getFilterById ( column : string , editable : State = State . Ready ) {
36
- return cy . get ( `#table ${ getSelector ( editable ) } tbody tr th.dash-filter[data-dash-column="${ column } "]` ) ;
39
+ public getFilterById ( column : string , editable : State = State . Ready ) {
40
+ return cy . get ( `#${ this . id } ${ getSelector ( editable ) } tbody tr th.dash-filter[data-dash-column="${ column } "]` ) ;
37
41
}
38
42
39
- static getHeader ( row : number , column : number , editable : State = State . Ready ) {
40
- return cy . get ( `#table ${ getSelector ( editable ) } tbody tr th.dash-header.column-${ column } ` ) . eq ( row ) ;
43
+ public getHeader ( row : number , column : number , editable : State = State . Ready ) {
44
+ return cy . get ( `#${ this . id } ${ getSelector ( editable ) } tbody tr th.dash-header.column-${ column } ` ) . eq ( row ) ;
41
45
}
42
46
43
- static getHeaderById ( row : number , column : string , editable : State = State . Ready ) {
44
- return cy . get ( `#table ${ getSelector ( editable ) } tbody tr th.dash-header[data-dash-column="${ column } "]` ) . eq ( row ) ;
47
+ public getHeaderById ( row : number , column : string , editable : State = State . Ready ) {
48
+ return cy . get ( `#${ this . id } ${ getSelector ( editable ) } tbody tr th.dash-header[data-dash-column="${ column } "]` ) . eq ( row ) ;
45
49
}
46
50
47
- static focusCell ( row : number , column : number ) {
51
+ public focusCell ( row : number , column : number ) {
48
52
// somehow we need to scrollIntoView AFTER click, or it doesn't
49
53
// work right. Why?
50
54
return this . getCell ( row , column ) . click ( ) . scrollIntoView ( ) ;
51
55
}
52
56
53
- static focusCellById ( row : number , column : string ) {
57
+ public focusCellById ( row : number , column : string ) {
54
58
return this . getCellById ( row , column ) . click ( ) . scrollIntoView ( ) ;
55
59
}
56
60
57
- static clearColumnById ( row : number , column : string , editable : State = State . Ready ) {
58
- return cy . get ( `#table ${ getSelector ( editable ) } tbody tr th.dash-header[data-dash-column="${ column } "] .column-header--clear` ) . eq ( row ) . click ( ) ;
61
+ public clearColumnById ( row : number , column : string , editable : State = State . Ready ) {
62
+ return cy . get ( `#${ this . id } ${ getSelector ( editable ) } tbody tr th.dash-header[data-dash-column="${ column } "] .column-header--clear` ) . eq ( row ) . click ( ) ;
59
63
}
60
64
61
- static deleteColumnById ( row : number , column : string , editable : State = State . Ready ) {
62
- return cy . get ( `#table ${ getSelector ( editable ) } tbody tr th.dash-header[data-dash-column="${ column } "] .column-header--delete` ) . eq ( row ) . click ( ) ;
65
+ public deleteColumnById ( row : number , column : string , editable : State = State . Ready ) {
66
+ return cy . get ( `#${ this . id } ${ getSelector ( editable ) } tbody tr th.dash-header[data-dash-column="${ column } "] .column-header--delete` ) . eq ( row ) . click ( ) ;
63
67
}
64
68
65
- static hideColumnById ( row : number , column : string , editable : State = State . Ready ) {
66
- return cy . get ( `#table ${ getSelector ( editable ) } tbody tr th.dash-header[data-dash-column="${ column } "] .column-header--hide` ) . eq ( row ) . click ( ) ;
69
+ public hideColumnById ( row : number , column : string , editable : State = State . Ready ) {
70
+ return cy . get ( `#${ this . id } ${ getSelector ( editable ) } tbody tr th.dash-header[data-dash-column="${ column } "] .column-header--hide` ) . eq ( row ) . click ( ) ;
67
71
}
68
72
69
- static getSelectColumnById ( row : number , column : string , editable : State = State . Ready ) {
70
- return cy . get ( `#table ${ getSelector ( editable ) } tbody tr th.dash-header[data-dash-column="${ column } "] .column-header--select input` ) . eq ( row ) ;
73
+ public getSelectColumnById ( row : number , column : string , editable : State = State . Ready ) {
74
+ return cy . get ( `#${ this . id } ${ getSelector ( editable ) } tbody tr th.dash-header[data-dash-column="${ column } "] .column-header--select input` ) . eq ( row ) ;
71
75
}
72
76
73
- static selectColumnById ( row : number , column : string ) {
74
- return DashTable . getSelectColumnById ( row , column ) . click ( ) ;
77
+ public selectColumnById ( row : number , column : string ) {
78
+ return this . getSelectColumnById ( row , column ) . click ( ) ;
75
79
}
76
80
77
- static getDelete ( row : number , editable : State = State . Ready ) {
78
- return cy . get ( `#table ${ getSelector ( editable ) } tbody tr td.dash-delete-cell` ) . eq ( row ) ;
81
+ public getDelete ( row : number , editable : State = State . Ready ) {
82
+ return cy . get ( `#${ this . id } ${ getSelector ( editable ) } tbody tr td.dash-delete-cell` ) . eq ( row ) ;
79
83
}
80
84
81
- static getSelect ( row : number , editable : State = State . Ready ) {
82
- return cy . get ( `#table ${ getSelector ( editable ) } tbody tr td.dash-select-cell` ) . eq ( row ) ;
85
+ public getSelect ( row : number , editable : State = State . Ready ) {
86
+ return cy . get ( `#${ this . id } ${ getSelector ( editable ) } tbody tr td.dash-select-cell` ) . eq ( row ) ;
83
87
}
84
88
85
- static getActiveCell ( editable : State = State . Ready ) {
86
- return cy . get ( `#table ${ getSelector ( editable ) } tbody td.focused` ) ;
89
+ public getActiveCell ( editable : State = State . Ready ) {
90
+ return cy . get ( `#${ this . id } ${ getSelector ( editable ) } tbody td.focused` ) ;
87
91
}
88
92
89
- static getSelectedCells ( editable : State = State . Ready ) {
90
- return cy . get ( `#table ${ getSelector ( editable ) } tbody td.cell--selected` ) ;
93
+ public getSelectedCells ( editable : State = State . Ready ) {
94
+ return cy . get ( `#${ this . id } ${ getSelector ( editable ) } tbody td.cell--selected` ) ;
91
95
}
92
96
93
- static scrollToTop ( ) {
97
+ public scrollToTop ( ) {
94
98
cy . get ( `.cell.cell-1-1.dash-fixed-content` ) . invoke ( `outerHeight` ) . then ( height => {
95
99
cy . scrollTo ( 0 , - height ) ;
96
100
} ) ;
97
101
}
98
102
99
- static scrollToBottom ( ) {
103
+ public scrollToBottom ( ) {
100
104
cy . get ( `.cell.cell-1-1.dash-fixed-content` ) . invoke ( `outerHeight` ) . then ( height => {
101
105
cy . scrollTo ( 0 , height ) ;
102
106
} ) ;
103
107
}
104
108
105
- static getCellInLastRowOfColumn ( column : number ) {
109
+ public getCellInLastRowOfColumn ( column : number ) {
106
110
const cellInLastRow = cy . get ( `td.dash-cell.column-${ column } ` ) . last ( ) . then ( elem => {
107
111
const lastRow = elem ? elem . attr ( `data-dash-row` ) : undefined ;
108
112
return lastRow ? cy . get ( `td.dash-cell.column-${ column } [data-dash-row="${ lastRow } "` ) : undefined ;
109
113
} ) ;
110
114
return cellInLastRow ;
111
115
}
112
116
113
- static getCellFromDataDash ( row : number , column : number ) {
117
+ public getCellFromDataDash ( row : number , column : number ) {
114
118
return cy . get ( `td.column-${ column } [data-dash-row="${ row } "]` ) ;
115
119
}
116
120
117
- static toggleScroll ( toggled : boolean ) {
121
+ public toggleScroll ( toggled : boolean ) {
118
122
cy . get ( '.row-1' ) . then ( $el => {
119
123
$el [ 0 ] . style . overflow = toggled ? '' : 'unset' ;
120
124
} ) ;
121
125
}
122
126
}
127
+
128
+ export default new DashTableHelper ( 'table' ) ;
0 commit comments