1- import { act , fireEvent , render , screen } from '@testing-library/react' ;
1+ import { render , screen } from '@testing-library/react' ;
22import { getJestSelectors } from '@volkovlabs/jest-selectors' ;
33import React from 'react' ;
44
@@ -52,6 +52,7 @@ describe('SliderView', () => {
5252 const deviceVariable = {
5353 multi : true ,
5454 includeAll : true ,
55+ label : 'Device' ,
5556 type : VariableType . CUSTOM ,
5657 current : {
5758 text : 'device2' ,
@@ -194,7 +195,7 @@ describe('SliderView', () => {
194195
195196 expect ( selectors . field ( ) ) . toBeInTheDocument ( ) ;
196197 expect ( selectors . field ( ) ) . toHaveTextContent ( 'Device' ) ;
197- expect ( selectors . slider ( ) ) . toBeInTheDocument ( ) ;
198+ expect ( screen . getByLabelText ( 'Use arrow keys to change the value' ) ) . toBeInTheDocument ( ) ;
198199
199200 expect ( selectors . root ( ) ) . toHaveStyle ( 'padding:20px' ) ;
200201 } ) ;
@@ -220,7 +221,7 @@ describe('SliderView', () => {
220221
221222 expect ( selectors . field ( ) ) . toBeInTheDocument ( ) ;
222223 expect ( selectors . field ( ) ) . toHaveTextContent ( 'Device' ) ;
223- expect ( selectors . slider ( ) ) . toBeInTheDocument ( ) ;
224+ expect ( screen . getByLabelText ( 'Use arrow keys to change the value' ) ) . toBeInTheDocument ( ) ;
224225
225226 expect ( selectors . root ( ) ) . not . toHaveStyle ( 'padding:20px' ) ;
226227 expect ( selectors . root ( ) ) . toHaveStyle ( 'padding:0px' ) ;
@@ -251,7 +252,7 @@ describe('SliderView', () => {
251252
252253 expect ( selectors . field ( ) ) . toBeInTheDocument ( ) ;
253254 expect ( selectors . field ( ) ) . toHaveTextContent ( 'Device' ) ;
254- expect ( selectors . slider ( ) ) . toBeInTheDocument ( ) ;
255+ expect ( screen . getByLabelText ( 'Use arrow keys to change the value' ) ) . toBeInTheDocument ( ) ;
255256 } ) ;
256257
257258 it ( 'Should not display label' , async ( ) => {
@@ -273,156 +274,8 @@ describe('SliderView', () => {
273274
274275 expect ( selectors . field ( ) ) . toBeInTheDocument ( ) ;
275276 expect ( selectors . field ( ) ) . toHaveTextContent ( '' ) ;
276- expect ( selectors . slider ( ) ) . toBeInTheDocument ( ) ;
277- } ) ;
278- } ) ;
279-
280- describe ( 'Update value' , ( ) => {
281- const options = [
282- {
283- text : ALL_VALUE ,
284- value : ALL_VALUE_PARAMETER ,
285- selected : false ,
286- } ,
287- {
288- text : 'device1' ,
289- value : 'device1' ,
290- selected : true ,
291- } ,
292- {
293- text : 'device2' ,
294- value : 'device2' ,
295- selected : false ,
296- } ,
297- {
298- text : 'device3' ,
299- value : 'device3' ,
300- selected : false ,
301- } ,
302- ] ;
303-
304- const deviceVariable = {
305- multi : false ,
306- includeAll : true ,
307- type : VariableType . CUSTOM ,
308- current : {
309- text : 'device1' ,
310- } ,
311- options : options ,
312- } ;
313-
314- beforeEach ( ( ) => {
315- jest . mocked ( useRuntimeVariables ) . mockImplementationOnce (
316- ( ) =>
317- ( {
318- variable : deviceVariable ,
319- } ) as any
320- ) ;
321- } ) ;
322-
323- it ( 'Should update slider value without updating variable' , async ( ) => {
324- const setValue = jest . fn ( ) ;
325-
326- jest . mocked ( useSlider ) . mockReturnValueOnce ( {
327- value : 1 ,
328- min : 0 ,
329- max : 10 ,
330- variableValue : 'device1' ,
331- setValue,
332- text : 'Device 1' ,
333- marks : { } ,
334- } ) ;
335-
336- render (
337- getComponent ( {
338- options : {
339- variable : 'device' ,
340- persistent : true ,
341- } as any ,
342- } )
343- ) ;
344-
345- expect ( selectors . field ( ) ) . toBeInTheDocument ( ) ;
346- expect ( selectors . slider ( ) ) . toBeInTheDocument ( ) ;
347-
348- await act ( ( ) => fireEvent . change ( selectors . slider ( ) , { target : { value : 3 } } ) ) ;
349-
350- expect ( setValue ) . toHaveBeenCalled ( ) ;
351- expect ( setValue ) . toHaveBeenCalledWith ( 3 ) ;
352-
353- expect ( updateVariableOptions ) . not . toHaveBeenCalled ( ) ;
354- } ) ;
355-
356- it ( 'Should update variable value on blur' , async ( ) => {
357- const setValue = jest . fn ( ) ;
358-
359- jest . mocked ( useSlider ) . mockReturnValueOnce ( {
360- value : 1 ,
361- min : 0 ,
362- max : 10 ,
363- variableValue : 'device1' ,
364- setValue,
365- text : 'Device 1' ,
366- marks : { } ,
367- } ) ;
368-
369- render (
370- getComponent ( {
371- options : {
372- variable : 'device' ,
373- persistent : true ,
374- } as any ,
375- } )
376- ) ;
377-
378- expect ( selectors . field ( ) ) . toBeInTheDocument ( ) ;
379- expect ( selectors . slider ( ) ) . toBeInTheDocument ( ) ;
380-
381- await act ( ( ) => fireEvent . change ( selectors . slider ( ) , { target : { value : 3 } } ) ) ;
382- await act ( ( ) => fireEvent . blur ( selectors . slider ( ) , { target : { value : 3 } } ) ) ;
383-
384- expect ( setValue ) . toHaveBeenCalled ( ) ;
385- expect ( setValue ) . toHaveBeenCalledWith ( 3 ) ;
386-
387- /**
388- * Check if variable value updated
389- */
390- expect ( updateVariableOptions ) . toHaveBeenCalledWith (
391- expect . objectContaining ( {
392- value : options [ 3 ] . value ,
393- previousValues : [ 'device1' ] ,
394- variable : deviceVariable ,
395- } )
396- ) ;
397- } ) ;
398-
399- it ( 'Should not update variable value if value not changed' , async ( ) => {
400- const setValue = jest . fn ( ) ;
401-
402- jest . mocked ( useSlider ) . mockReturnValueOnce ( {
403- value : 1 ,
404- min : 0 ,
405- max : 10 ,
406- variableValue : 'device1' ,
407- setValue,
408- text : 'Device 1' ,
409- marks : { } ,
410- } ) ;
411-
412- render (
413- getComponent ( {
414- options : {
415- variable : 'device' ,
416- } as any ,
417- } )
418- ) ;
419-
420- expect ( selectors . field ( ) ) . toBeInTheDocument ( ) ;
421- expect ( selectors . slider ( ) ) . toBeInTheDocument ( ) ;
422-
423- await act ( ( ) => fireEvent . change ( selectors . slider ( ) , { target : { value : 1 } } ) ) ;
424-
425- expect ( setValue ) . not . toHaveBeenCalled ( ) ;
277+ expect ( screen . queryByLabelText ( 'Device' ) ) . not . toBeInTheDocument ( ) ;
278+ expect ( screen . getByLabelText ( 'Use arrow keys to change the value' ) ) . toBeInTheDocument ( ) ;
426279 } ) ;
427280 } ) ;
428281} ) ;
0 commit comments