@@ -165,4 +165,74 @@ describe('table tbody row events', () => {
165
165
$rows . at ( 1 ) . trigger ( 'contextmenu' )
166
166
expect ( wrapper . emitted ( 'row-contextmenu' ) ) . not . toBeDefined ( )
167
167
} )
168
+
169
+ it ( 'should emit row-hovered event when a row is hovered' , async ( ) => {
170
+ const wrapper = mount ( Table , {
171
+ propsData : {
172
+ fields : testFields ,
173
+ items : testItems
174
+ }
175
+ } )
176
+ expect ( wrapper ) . toBeDefined ( )
177
+ const $rows = wrapper . findAll ( 'tbody > tr' )
178
+ expect ( $rows . length ) . toBe ( 3 )
179
+ expect ( wrapper . emitted ( 'row-hovered' ) ) . not . toBeDefined ( )
180
+ $rows . at ( 1 ) . trigger ( 'mouseenter' )
181
+ expect ( wrapper . emitted ( 'row-hovered' ) ) . toBeDefined ( )
182
+ expect ( wrapper . emitted ( 'row-hovered' ) . length ) . toBe ( 1 )
183
+ expect ( wrapper . emitted ( 'row-hovered' ) [ 0 ] [ 0 ] ) . toEqual ( testItems [ 1 ] ) /* row item */
184
+ expect ( wrapper . emitted ( 'row-hovered' ) [ 0 ] [ 1 ] ) . toEqual ( 1 ) /* row index */
185
+ expect ( wrapper . emitted ( 'row-hovered' ) [ 0 ] [ 2 ] ) . toBeInstanceOf ( MouseEvent ) /* event */
186
+ } )
187
+
188
+ it ( 'should not emit row-hovered event when a row is hovered and table busy' , async ( ) => {
189
+ const wrapper = mount ( Table , {
190
+ propsData : {
191
+ fields : testFields ,
192
+ items : testItems ,
193
+ busy : true
194
+ }
195
+ } )
196
+ expect ( wrapper ) . toBeDefined ( )
197
+ const $rows = wrapper . findAll ( 'tbody > tr' )
198
+ expect ( $rows . length ) . toBe ( 3 )
199
+ expect ( wrapper . emitted ( 'row-hovered' ) ) . not . toBeDefined ( )
200
+ $rows . at ( 1 ) . trigger ( 'mouseenter' )
201
+ expect ( wrapper . emitted ( 'row-hovered' ) ) . not . toBeDefined ( )
202
+ } )
203
+
204
+ it ( 'should emit row-unhovered event when a row is unhovered' , async ( ) => {
205
+ const wrapper = mount ( Table , {
206
+ propsData : {
207
+ fields : testFields ,
208
+ items : testItems
209
+ }
210
+ } )
211
+ expect ( wrapper ) . toBeDefined ( )
212
+ const $rows = wrapper . findAll ( 'tbody > tr' )
213
+ expect ( $rows . length ) . toBe ( 3 )
214
+ expect ( wrapper . emitted ( 'row-unhovered' ) ) . not . toBeDefined ( )
215
+ $rows . at ( 1 ) . trigger ( 'mouseleave' )
216
+ expect ( wrapper . emitted ( 'row-unhovered' ) ) . toBeDefined ( )
217
+ expect ( wrapper . emitted ( 'row-unhovered' ) . length ) . toBe ( 1 )
218
+ expect ( wrapper . emitted ( 'row-unhovered' ) [ 0 ] [ 0 ] ) . toEqual ( testItems [ 1 ] ) /* row item */
219
+ expect ( wrapper . emitted ( 'row-unhovered' ) [ 0 ] [ 1 ] ) . toEqual ( 1 ) /* row index */
220
+ expect ( wrapper . emitted ( 'row-unhovered' ) [ 0 ] [ 2 ] ) . toBeInstanceOf ( MouseEvent ) /* event */
221
+ } )
222
+
223
+ it ( 'should not emit row-unhovered event when a row is unhovered and table busy' , async ( ) => {
224
+ const wrapper = mount ( Table , {
225
+ propsData : {
226
+ fields : testFields ,
227
+ items : testItems ,
228
+ busy : true
229
+ }
230
+ } )
231
+ expect ( wrapper ) . toBeDefined ( )
232
+ const $rows = wrapper . findAll ( 'tbody > tr' )
233
+ expect ( $rows . length ) . toBe ( 3 )
234
+ expect ( wrapper . emitted ( 'row-uhovered' ) ) . not . toBeDefined ( )
235
+ $rows . at ( 1 ) . trigger ( 'mouseleave' )
236
+ expect ( wrapper . emitted ( 'row-unhovered' ) ) . not . toBeDefined ( )
237
+ } )
168
238
} )
0 commit comments