11import React from 'react' ;
2- import { render , screen } from '@testing-library/react' ;
2+ import { render as rtlRender , screen } from '@testing-library/react' ;
33import '@testing-library/jest-dom/extend-expect' ;
4- import { TextEncoder } from 'util' ;
5- global . TextEncoder = TextEncoder ;
64import MainSlider from '../components/MainSlider' ;
7- import { useStoreContext } from '../store' ;
5+ import { mainSlice } from '../slices/mainSlice'
6+ import { Provider } from 'react-redux' ;
7+ import { configureStore } from '@reduxjs/toolkit' ;
88
9- jest . mock ( '../store' ) ;
10- const mockeduseStoreContext = jest . mocked ( useStoreContext ) ;
119
12- describe ( 'Unit testing for MainSlider.jsx' , ( ) => {
13- const props = {
14- snapshotsLength : 1 ,
15- } ;
16-
17- const state = {
18- tabs : {
19- 100 : {
10+ const customTabs = {
11+ 100 : {
2012 sliderIndex : 1 ,
2113 } ,
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 ,
2225 } ,
23- currentTab : 100 ,
2426 } ;
2527
26- const dispatch = jest . fn ( ) ;
27- mockeduseStoreContext . mockImplementation ( ( ) => [ state , dispatch ] ) ;
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+ } ;
2847
2948 describe ( 'When user only has one snapshot to view' , ( ) => {
3049 test ( 'Component should have min, max, value with correct values to indicate slider position for correct tab' , ( ) => {
3150 render ( < MainSlider { ...props } /> ) ;
32- expect ( screen . getByRole ( 'slider' ) ) . toHaveAttribute ( 'aria-valuemin' , '0' ) ;
33- expect ( screen . getByRole ( 'slider' ) ) . toHaveAttribute ( 'aria-valuemax' , '0' ) ;
34- expect ( screen . getByRole ( 'slider' ) ) . toHaveAttribute ( 'aria-valuenow' , '0' ) ;
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+ } ) ;
3555 } ) ;
36- } ) ;
3756
3857 describe ( 'When there are multiple snapshots and we are looking in between' , ( ) => {
39- const props = {
40- snapshotsLength : 3 ,
41- } ;
42-
43- test ( 'Component should have min, max, value with correct values to indicate slider position when there are multiple snapshots' , ( ) => {
44- render ( < MainSlider { ...props } /> ) ;
45- expect ( screen . getByRole ( 'slider' ) ) . toHaveAttribute ( 'aria-valuemax' , '2' ) ;
46- expect ( screen . getByRole ( 'slider' ) ) . toHaveAttribute ( 'aria-valuemin' , '0' ) ;
47- expect ( screen . getByRole ( 'slider' ) ) . toHaveAttribute ( 'aria-valuenow' , '0' )
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+ } ) ;
4868 } ) ;
49- } ) ;
50- } ) ;
69+
70+ } ) ;
0 commit comments