diff --git a/types/cavy/cavy-tests.tsx b/types/cavy/cavy-tests.tsx index 05f9032414..2f7dd0d474 100644 --- a/types/cavy/cavy-tests.tsx +++ b/types/cavy/cavy-tests.tsx @@ -8,11 +8,22 @@ type Props = WithTestHook<{ }>; class SampleComponent extends React.Component { + textInputRef: React.ReactNode | null; + + constructor(props: Props) { + super(props); + this.textInputRef = null; + } + + setTextInputRef = (el?: React.ReactNode) => { + this.textInputRef = el; + } + render() { return ( {this.props.foo} - + ); } @@ -22,9 +33,8 @@ const HookedSampleComponent = hook(SampleComponent); // $ExpectType ComponentCla const SampleFunctionComponent: React.FunctionComponent = () => { const generateTestHook = useCavy(); - return ( - - ); + const ref = React.createRef(); + return ; }; function sampleSpec(spec: TestScope) { diff --git a/types/cavy/index.d.ts b/types/cavy/index.d.ts index 985a7e3f46..5cae135d2c 100644 --- a/types/cavy/index.d.ts +++ b/types/cavy/index.d.ts @@ -1,4 +1,4 @@ -// Type definitions for cavy 2.0 +// Type definitions for cavy 2.2 // Project: https://github.com/pixielabs/cavy // Definitions by: Tyler Hoffman // Abigail McPhillips @@ -11,7 +11,10 @@ export {}; type RefCallback = (element: React.ReactNode | null) => void; -export type TestHookGenerator = (label: string, callback?: RefCallback) => RefCallback; +type TestHookGeneratorWithRefCallback = (label: string, ref?: RefCallback) => RefCallback; +type TestHookGeneratorWithRefObject = (label: string, ref?: React.RefObject) => React.RefObject; + +export type TestHookGenerator = TestHookGeneratorWithRefCallback & TestHookGeneratorWithRefObject; export type WithTestHook = T & { generateTestHook: TestHookGenerator }; diff --git a/types/cavy/tsconfig.json b/types/cavy/tsconfig.json index 4b78de6410..6e0e9e6275 100644 --- a/types/cavy/tsconfig.json +++ b/types/cavy/tsconfig.json @@ -21,4 +21,4 @@ "index.d.ts", "cavy-tests.tsx" ] -} \ No newline at end of file +}