diff --git a/workbench/outputs/android/Libraries/Utilities/ReactNativeTestTools.d.ts b/workbench/outputs/android/Libraries/Utilities/ReactNativeTestTools.d.ts index 223ba52d..2f9e9d28 100644 --- a/workbench/outputs/android/Libraries/Utilities/ReactNativeTestTools.d.ts +++ b/workbench/outputs/android/Libraries/Utilities/ReactNativeTestTools.d.ts @@ -5,7 +5,7 @@ import { ReactTestRenderer as ReactTestRendererType } from "react-test-renderer" declare type ReactTestInstance = $PropertyType; declare type Predicate = (node: ReactTestInstance) => boolean; declare type $ReturnType any> = ReturnType; -declare type ReactTestRendererJSON = $ReturnType<$2.create.toJSON>; +declare type ReactTestRendererJSON = $ReturnType<$ReturnType["toJSON"]>; declare function byClickable(): Predicate; declare function byTestID(testID: string): Predicate; declare function byTextMatching(regex: RegExp): Predicate; diff --git a/workbench/outputs/ios/Libraries/Utilities/ReactNativeTestTools.d.ts b/workbench/outputs/ios/Libraries/Utilities/ReactNativeTestTools.d.ts index 223ba52d..2f9e9d28 100644 --- a/workbench/outputs/ios/Libraries/Utilities/ReactNativeTestTools.d.ts +++ b/workbench/outputs/ios/Libraries/Utilities/ReactNativeTestTools.d.ts @@ -5,7 +5,7 @@ import { ReactTestRenderer as ReactTestRendererType } from "react-test-renderer" declare type ReactTestInstance = $PropertyType; declare type Predicate = (node: ReactTestInstance) => boolean; declare type $ReturnType any> = ReturnType; -declare type ReactTestRendererJSON = $ReturnType<$2.create.toJSON>; +declare type ReactTestRendererJSON = $ReturnType<$ReturnType["toJSON"]>; declare function byClickable(): Predicate; declare function byTestID(testID: string): Predicate; declare function byTextMatching(regex: RegExp): Predicate; diff --git a/workbench/overrides.ts b/workbench/overrides.ts index d056fb8c..3c2a0bb1 100644 --- a/workbench/overrides.ts +++ b/workbench/overrides.ts @@ -150,15 +150,32 @@ const visitors: OverridesVisitors = { }, }, }, + // TODO: This should be fixed upstream in RN. This seems like simply broken upstream code. "Libraries/Utilities/ReactNativeTestTools.d.ts": { TSTypeAliasDeclaration: { exit(path) { - if (path.node.id.name === "$ReturnType") { - const replacementDeclaration = ast` - declare type $ReturnType any> = ReturnType - ` as t.TSTypeAliasDeclaration - path.replaceWith(replacementDeclaration) - path.skip() + switch (path.node.id.name) { + case "$ReturnType": { + const replacementDeclaration = ast` + declare type $ReturnType any> = ReturnType + ` as t.TSTypeAliasDeclaration + path.replaceWith(replacementDeclaration) + path.skip() + break + } + case "ReactTestRendererJSON": { + const replacementDeclaration = ast` + declare type ReactTestRendererJSON = + $ReturnType< + $ReturnType< + typeof import("react-test-renderer")["create"] + >["toJSON"] + > + ` as t.TSTypeAliasDeclaration + path.replaceWith(replacementDeclaration) + path.skip() + break + } } }, },