1
+ import React from 'react' ;
2
+ import { render as rtlRender , screen } from '@testing-library/react' ;
3
+ import '@testing-library/jest-dom/extend-expect' ;
4
+ import MainSlider from '../components/MainSlider' ;
5
+ import { mainSlice } from '../RTKslices'
6
+ import { Provider } from 'react-redux' ;
7
+ import { configureStore } from '@reduxjs/toolkit' ;
8
+
9
+
10
+ const customTabs = {
11
+ 100 : {
12
+ sliderIndex : 1 ,
13
+ } ,
14
+ }
15
+
16
+ const customInitialState = {
17
+ main : {
18
+ port : null ,
19
+ currentTab : 100 ,
20
+ currentTitle : null ,
21
+ tabs : customTabs , // Replace with the actual (testing) tab data
22
+ currentTabInApp : null ,
23
+ connectionStatus : false ,
24
+ connectRequested : true ,
25
+ } ,
26
+ } ;
27
+
28
+ const customStore = configureStore ( {
29
+ reducer : {
30
+ main : mainSlice . reducer ,
31
+ } ,
32
+ preloadedState : customInitialState ,
33
+ middleware : ( getDefaultMiddleware ) =>
34
+ getDefaultMiddleware ( { serializableCheck : false } ) ,
35
+ } ) ;
36
+
37
+ const render = component => rtlRender (
38
+ < Provider store = { customStore } >
39
+ { component }
40
+ </ Provider >
41
+ ) ;
42
+
43
+ describe ( 'Unit testing for MainSlider.jsx' , ( ) => {
44
+ const props = {
45
+ snapshotsLength : 1 ,
46
+ } ;
47
+
48
+ describe ( 'When user only has one snapshot to view' , ( ) => {
49
+ test ( 'Component should have min, max, value with correct values to indicate slider position for correct tab' , ( ) => {
50
+ render ( < MainSlider { ...props } /> ) ;
51
+ expect ( screen . getByRole ( 'slider' ) ) . toHaveAttribute ( 'aria-valuemin' , '0' ) ;
52
+ expect ( screen . getByRole ( 'slider' ) ) . toHaveAttribute ( 'aria-valuemax' , '0' ) ;
53
+ expect ( screen . getByRole ( 'slider' ) ) . toHaveAttribute ( 'aria-valuenow' , '0' ) ;
54
+ } ) ;
55
+ } ) ;
56
+
57
+ describe ( 'When there are multiple snapshots and we are looking in between' , ( ) => {
58
+ const props = {
59
+ snapshotsLength : 3 ,
60
+ } ;
61
+
62
+ test ( 'Component should have min, max, value with correct values to indicate slider position when there are multiple snapshots' , ( ) => {
63
+ render ( < MainSlider { ...props } /> ) ;
64
+ expect ( screen . getByRole ( 'slider' ) ) . toHaveAttribute ( 'aria-valuemax' , '2' ) ;
65
+ expect ( screen . getByRole ( 'slider' ) ) . toHaveAttribute ( 'aria-valuemin' , '0' ) ;
66
+ expect ( screen . getByRole ( 'slider' ) ) . toHaveAttribute ( 'aria-valuenow' , '0' )
67
+ } ) ;
68
+ } ) ;
69
+
70
+ } ) ;
0 commit comments