-
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.tsx
65 lines (57 loc) · 1.71 KB
/
index.tsx
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
import React, { FC, ReactNode, RefObject, createRef } from 'react'
import { render } from '@testing-library/react'
import withForwardedRef from '../source'
// eslint-disable-next-line @typescript-eslint/no-explicit-any
interface Props<A = any> {
children: ReactNode
className: string
forwardedRef?: RefObject<A>
}
describe('withForwardedRef', () => {
it('renders', () => {
const Comp: FC<Props> = ({ children, className, forwardedRef }) => (
<div className={className} ref={forwardedRef}>
{children}
</div>
)
const WrappedComp = withForwardedRef(Comp)
const ref = createRef()
const { asFragment } = render(
<WrappedComp className="foo" ref={ref}>
Testing 123
</WrappedComp>
)
expect(asFragment()).toMatchSnapshot()
})
it('renders, custom displayName', () => {
const Comp: FC<Props> = ({ children, className, forwardedRef }) => (
<div className={className} ref={forwardedRef}>
{children}
</div>
)
Comp.displayName = 'FooBar'
const WrappedComp = withForwardedRef(Comp)
const ref = createRef()
const { asFragment } = render(
<WrappedComp className="foo" ref={ref}>
Testing 123
</WrappedComp>
)
expect(asFragment()).toMatchSnapshot()
})
it('ref points to HTMLDivElement', () => {
const Comp: FC<Props> = ({ children, className, forwardedRef }) => (
<div className={className} ref={forwardedRef}>
{children}
</div>
)
const WrappedComp = withForwardedRef(Comp)
const ref = createRef()
render(
<WrappedComp className="foo" ref={ref}>
Testing 123
</WrappedComp>
)
expect(ref.current).toBeInstanceOf(HTMLDivElement)
})
})