Skip to content

Commit 4df8d67

Browse files
authored
Merge pull request #260 from retyui/add-use-dimensions-test
Add useDimensions tests
2 parents ad27823 + 56753aa commit 4df8d67

File tree

1 file changed

+42
-0
lines changed

1 file changed

+42
-0
lines changed

src/useDimensions.test.ts

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
import {useDimensions} from './useDimensions'
2+
import {act, renderHook} from '@testing-library/react-hooks'
3+
4+
// @ts-expect-error - untyped implementation
5+
import RCTDeviceEventEmitter from 'react-native/Libraries/EventEmitter/RCTDeviceEventEmitter'
6+
7+
describe('useDimensions', () => {
8+
const defaultDimensionsMock = {
9+
screen: {fontScale: 2, height: 1334, scale: 2, width: 750},
10+
window: {fontScale: 2, height: 1334, scale: 2, width: 750},
11+
}
12+
13+
const emitChangeDimensions = ({
14+
window = defaultDimensionsMock.window,
15+
screen = defaultDimensionsMock.screen,
16+
}) => RCTDeviceEventEmitter.emit('didUpdateDimensions', {window, screen})
17+
18+
it('should return device dimensions', () => {
19+
const {result} = renderHook(() => useDimensions())
20+
21+
expect(result.current).toEqual(defaultDimensionsMock)
22+
})
23+
24+
it('should update dimensions when they change', () => {
25+
const newWindow = {...defaultDimensionsMock.window, height: 600}
26+
const {result} = renderHook(() => useDimensions())
27+
28+
const {height: initialHeight} = result.current.window
29+
30+
act(() => emitChangeDimensions({window: newWindow}))
31+
32+
const {height: afterUpdateHeight} = result.current.window
33+
34+
expect({
35+
initialHeight,
36+
afterUpdateHeight,
37+
}).toEqual({
38+
initialHeight: 1334,
39+
afterUpdateHeight: 600,
40+
})
41+
})
42+
})

0 commit comments

Comments
 (0)