Pass scriptURL to RCTTestRunner

Summary:
Pass scriptURL to RCTTestRunner.
If the scriptURL passed to RCTTestRunner is not nil, then RCTTestRunner will use it.
else, RCTTestRunner will use whatever it has before.

Differential Revision: D6215186

fbshipit-source-id: c3a5643021d60579fc8e60a69de150f6a4a39237
This commit is contained in:
Chris Zheng 2017-11-12 13:30:13 -08:00 committed by Facebook Github Bot
parent d79e245d19
commit 266ab7a006
5 changed files with 15 additions and 7 deletions

View File

@ -32,10 +32,11 @@
* Use the RCTInitRunnerForApp macro for typical usage. See FBSnapshotTestCase.h for more information * Use the RCTInitRunnerForApp macro for typical usage. See FBSnapshotTestCase.h for more information
* on how to configure the snapshotting system. * on how to configure the snapshotting system.
*/ */
#define RCTInitRunnerForApp(app__, moduleProvider__) \ #define RCTInitRunnerForApp(app__, moduleProvider__, scriptURL__) \
[[RCTTestRunner alloc] initWithApp:(app__) \ [[RCTTestRunner alloc] initWithApp:(app__) \
referenceDirectory:@FB_REFERENCE_IMAGE_DIR \ referenceDirectory:@FB_REFERENCE_IMAGE_DIR \
moduleProvider:(moduleProvider__)] moduleProvider:(moduleProvider__) \
scriptURL: scriptURL__]
@protocol RCTBridgeModule; @protocol RCTBridgeModule;
@class RCTBridge; @class RCTBridge;
@ -68,7 +69,8 @@
*/ */
- (instancetype)initWithApp:(NSString *)app - (instancetype)initWithApp:(NSString *)app
referenceDirectory:(NSString *)referenceDirectory referenceDirectory:(NSString *)referenceDirectory
moduleProvider:(RCTBridgeModuleListProvider)block NS_DESIGNATED_INITIALIZER; moduleProvider:(RCTBridgeModuleListProvider)block
scriptURL:(NSURL *)scriptURL NS_DESIGNATED_INITIALIZER;
/** /**
* Simplest runTest function simply mounts the specified JS module with no * Simplest runTest function simply mounts the specified JS module with no

View File

@ -31,6 +31,7 @@ static const NSTimeInterval kTestTimeoutSeconds = 120;
- (instancetype)initWithApp:(NSString *)app - (instancetype)initWithApp:(NSString *)app
referenceDirectory:(NSString *)referenceDirectory referenceDirectory:(NSString *)referenceDirectory
moduleProvider:(RCTBridgeModuleListProvider)block moduleProvider:(RCTBridgeModuleListProvider)block
scriptURL:(NSURL *)scriptURL
{ {
RCTAssertParam(app); RCTAssertParam(app);
RCTAssertParam(referenceDirectory); RCTAssertParam(referenceDirectory);
@ -46,7 +47,12 @@ static const NSTimeInterval kTestTimeoutSeconds = 120;
_testController.referenceImagesDirectory = referenceDirectory; _testController.referenceImagesDirectory = referenceDirectory;
_moduleProvider = [block copy]; _moduleProvider = [block copy];
_appPath = app; _appPath = app;
[self updateScript];
if (scriptURL != nil) {
_scriptURL = scriptURL;
} else {
[self updateScript];
}
} }
return self; return self;
} }

View File

@ -117,7 +117,7 @@ static ControlBlock reactContentSizeUpdateBlock(RCTRootViewSizeFlexibility sizeF
- (void)setUp - (void)setUp
{ {
_runner = RCTInitRunnerForApp(@"IntegrationTests/RCTRootViewIntegrationTestApp", nil); _runner = RCTInitRunnerForApp(@"IntegrationTests/RCTRootViewIntegrationTestApp", nil, nil);
} }
#pragma mark Logic Tests #pragma mark Logic Tests

View File

@ -37,7 +37,7 @@
- (void)setUp - (void)setUp
{ {
_runner = RCTInitRunnerForApp(@"IntegrationTests/IntegrationTestsApp", nil); _runner = RCTInitRunnerForApp(@"IntegrationTests/IntegrationTestsApp", nil, nil);
_runner.recordMode = NO; _runner.recordMode = NO;
} }

View File

@ -24,7 +24,7 @@
- (void)setUp - (void)setUp
{ {
_runner = RCTInitRunnerForApp(@"RNTester/js/RNTesterApp.ios", nil); _runner = RCTInitRunnerForApp(@"RNTester/js/RNTesterApp.ios", nil, nil);
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 11) { if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 11) {
_runner.testSuffix = @"-iOS11"; _runner.testSuffix = @"-iOS11";
} else if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 10) { } else if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 10) {