|
18 | 18 |
|
19 | 19 | using namespace facebook::react; |
20 | 20 |
|
21 | | -@interface RCTInstance (RCTInstanceTests) |
22 | | -- (void)handleBundleLoadingError:(NSError *)error; |
23 | | -@end |
24 | | - |
25 | 21 | @interface FakeEagerModule : NSObject <RCTBridgeModule, RCTTurboModule> |
26 | 22 | @property (class, readonly) NSCountedSet<NSString *> *initCounts; |
27 | 23 | @property (class, nullable) void (^onInit)(void); |
@@ -225,16 +221,36 @@ - (void)testInitializesDevSettingsAfterBundleLoadFailure |
225 | 221 |
|
226 | 222 | XCTAssertEqual([FakeDevSettings.initCounts countForObject:FakeDevSettingsInitialize], 0u); |
227 | 223 |
|
228 | | - id instanceMock = OCMPartialMock(instance); |
229 | | - OCMStub([instanceMock handleBundleLoadingError:[OCMArg any]]); |
230 | 224 | loadComplete([NSError errorWithDomain:@"RCTInstanceTests" code:1 userInfo:nil], nil); |
231 | 225 |
|
232 | 226 | XCTAssertEqual([FakeDevSettings.initCounts countForObject:FakeDevSettingsInitialize], 1u); |
233 | 227 |
|
234 | | - [instanceMock stopMocking]; |
235 | 228 | [instance invalidate]; |
236 | 229 | } |
237 | 230 |
|
| 231 | +- (void)testDoesNotInitializeDevSettingsAfterInvalidation |
| 232 | +{ |
| 233 | + OCMStub([_mockDelegate unstableModulesRequiringMainQueueSetup]).andReturn(@[]); |
| 234 | + |
| 235 | + XCTestExpectation *loadStarted = [self expectationWithDescription:@"bundle load started"]; |
| 236 | + __block RCTSourceLoadBlock loadComplete; |
| 237 | + OCMStub([_mockDelegate loadBundleAtURL:[OCMArg any] onProgress:[OCMArg any] onComplete:[OCMArg any]]) |
| 238 | + .andDo(^(NSInvocation *invocation) { |
| 239 | + __unsafe_unretained RCTSourceLoadBlock completion; |
| 240 | + [invocation getArgument:&completion atIndex:4]; |
| 241 | + loadComplete = [completion copy]; |
| 242 | + [loadStarted fulfill]; |
| 243 | + }); |
| 244 | + |
| 245 | + RCTInstance *instance = [self makeInstance]; |
| 246 | + [self waitForExpectations:@[ loadStarted ] timeout:5.0]; |
| 247 | + [instance invalidate]; |
| 248 | + |
| 249 | + loadComplete([NSError errorWithDomain:@"RCTInstanceTests" code:1 userInfo:nil], nil); |
| 250 | + |
| 251 | + XCTAssertEqual([FakeDevSettings.initCounts countForObject:FakeDevSettingsInitialize], 0u); |
| 252 | +} |
| 253 | + |
238 | 254 | - (void)testBundleLoadAwaitsMainQueueModuleSetup |
239 | 255 | { |
240 | 256 | OCMStub([_mockDelegate unstableModulesRequiringMainQueueSetup]).andReturn(@[ FakeEagerModule.moduleName ]); |
|
0 commit comments