1
1
import { renderHook } from '@testing-library/react-hooks'
2
2
import {
3
- getItemIndex ,
4
3
defaultProps ,
5
4
getInitialValue ,
6
5
getDefaultValue ,
7
6
useMouseAndTouchTracker ,
7
+ getItemAndIndex ,
8
8
} from '../utils'
9
9
10
10
describe ( 'utils' , ( ) => {
@@ -15,21 +15,35 @@ describe('utils', () => {
15
15
} )
16
16
} )
17
17
18
- describe ( 'getItemIndex' , ( ) => {
19
- test ( 'returns -1 if no items' , ( ) => {
20
- const index = getItemIndex ( undefined , { } , [ ] )
21
- expect ( index ) . toBe ( - 1 )
18
+ describe ( 'getItemAndIndex' , ( ) => {
19
+ test ( 'returns arguments if passed as defined' , ( ) => {
20
+ expect ( getItemAndIndex ( { } , 5 , [ ] ) ) . toEqual ( [ { } , 5 ] )
22
21
} )
23
22
24
- test ( 'returns index if passed' , ( ) => {
25
- const index = getItemIndex ( 5 , { } , [ ] )
26
- expect ( index ) . toBe ( 5 )
23
+ test ( 'throws an error when item and index are not passed' , ( ) => {
24
+ const errorMessage = 'Pass either item or index to the item getter prop!'
25
+
26
+ expect ( ( ) =>
27
+ getItemAndIndex ( undefined , undefined , [ 1 , 2 , 3 ] , errorMessage ) ,
28
+ ) . toThrowError ( errorMessage )
29
+ } )
30
+
31
+ test ( 'returns index if item is passed' , ( ) => {
32
+ const item = { }
33
+
34
+ expect ( getItemAndIndex ( item , undefined , [ { x : 1 } , item , { x : 2 } ] ) ) . toEqual ( [
35
+ item ,
36
+ 1 ,
37
+ ] )
27
38
} )
28
39
29
- test ( 'returns index of item' , ( ) => {
40
+ test ( 'returns item if index is passed' , ( ) => {
41
+ const index = 2
30
42
const item = { x : 2 }
31
- const index = getItemIndex ( undefined , item , [ { x : 1 } , item , { x : 2 } ] )
32
- expect ( index ) . toBe ( 1 )
43
+ expect ( getItemAndIndex ( undefined , 2 , [ { x : 1 } , { x : 3 } , item ] ) ) . toEqual ( [
44
+ item ,
45
+ index ,
46
+ ] )
33
47
} )
34
48
} )
35
49
0 commit comments