From be2b0e2d8a3cab9de93959d37d398b2144f301ab Mon Sep 17 00:00:00 2001 From: Phillip Pan Date: Tue, 13 Jun 2023 14:24:12 -0700 Subject: [PATCH] lift out ShimRCTInstance to RCTTestUtils (#37859) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/37859 Changelog: [Internal] as title Reviewed By: cipolleschi Differential Revision: D46547014 fbshipit-source-id: ca89d659d24fa0fcef1c39fc47fc758cee34f7d8 --- .../react/bridgeless/iostests/RCTHostTests.mm | 31 +-------------- .../test_utils/ios/Shims/ShimRCTInstance.h | 11 ++++++ .../test_utils/ios/Shims/ShimRCTInstance.mm | 38 +++++++++++++++++++ 3 files changed, 50 insertions(+), 30 deletions(-) create mode 100644 packages/react-native/ReactCommon/react/test_utils/ios/Shims/ShimRCTInstance.h create mode 100644 packages/react-native/ReactCommon/react/test_utils/ios/Shims/ShimRCTInstance.mm diff --git a/packages/react-native/ReactCommon/react/bridgeless/iostests/RCTHostTests.mm b/packages/react-native/ReactCommon/react/bridgeless/iostests/RCTHostTests.mm index f76dfbb5f68..4e571b47ec0 100644 --- a/packages/react-native/ReactCommon/react/bridgeless/iostests/RCTHostTests.mm +++ b/packages/react-native/ReactCommon/react/bridgeless/iostests/RCTHostTests.mm @@ -7,7 +7,7 @@ #import -#import +#import #import #import #import @@ -15,9 +15,6 @@ #import -@interface ShimRCTInstance : NSObject -@end - @interface RCTHostTests : XCTestCase @end @@ -50,29 +47,3 @@ static ShimRCTInstance *shimmedRCTInstance; } @end - -@implementation ShimRCTInstance - -- (instancetype)init -{ - if (self = [super init]) { - RCTSwizzleInstanceSelector( - [RCTInstance class], - [ShimRCTInstance class], - @selector(initWithDelegate: - jsEngineInstance:bundleManager:turboModuleManagerDelegate:onInitialBundleLoad:moduleRegistry:)); - } - return self; -} - -- (instancetype)initWithDelegate:(id)delegate - jsEngineInstance:(std::shared_ptr)jsEngineInstance - bundleManager:(RCTBundleManager *)bundleManager - turboModuleManagerDelegate:(id)tmmDelegate - onInitialBundleLoad:(RCTInstanceInitialBundleLoadCompletionBlock)onInitialBundleLoad - moduleRegistry:(RCTModuleRegistry *)moduleRegistry -{ - return self; -} - -@end diff --git a/packages/react-native/ReactCommon/react/test_utils/ios/Shims/ShimRCTInstance.h b/packages/react-native/ReactCommon/react/test_utils/ios/Shims/ShimRCTInstance.h new file mode 100644 index 00000000000..50e1eb1f7fd --- /dev/null +++ b/packages/react-native/ReactCommon/react/test_utils/ios/Shims/ShimRCTInstance.h @@ -0,0 +1,11 @@ +/* + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +#import + +@interface ShimRCTInstance : NSObject +@end diff --git a/packages/react-native/ReactCommon/react/test_utils/ios/Shims/ShimRCTInstance.mm b/packages/react-native/ReactCommon/react/test_utils/ios/Shims/ShimRCTInstance.mm new file mode 100644 index 00000000000..1e1b52c6154 --- /dev/null +++ b/packages/react-native/ReactCommon/react/test_utils/ios/Shims/ShimRCTInstance.mm @@ -0,0 +1,38 @@ +/* + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +#import "ShimRCTInstance.h" + +#import + +#import "RCTSwizzleHelpers.h" + +@implementation ShimRCTInstance + +- (instancetype)init +{ + if (self = [super init]) { + RCTSwizzleInstanceSelector( + [RCTInstance class], + [ShimRCTInstance class], + @selector(initWithDelegate: + jsEngineInstance:bundleManager:turboModuleManagerDelegate:onInitialBundleLoad:moduleRegistry:)); + } + return self; +} + +- (instancetype)initWithDelegate:(id)delegate + jsEngineInstance:(std::shared_ptr)jsEngineInstance + bundleManager:(RCTBundleManager *)bundleManager + turboModuleManagerDelegate:(id)tmmDelegate + onInitialBundleLoad:(RCTInstanceInitialBundleLoadCompletionBlock)onInitialBundleLoad + moduleRegistry:(RCTModuleRegistry *)moduleRegistry +{ + return self; +} + +@end