@@ -75,6 +75,7 @@ @implementation RCTEventDispatcherTests
75
75
{
76
76
id _bridge;
77
77
RCTEventDispatcher *_eventDispatcher;
78
+ RCTCallableJSModules *_callableJSModules;
78
79
79
80
NSString *_eventName;
80
81
NSDictionary <NSString *, id > *_body;
@@ -89,8 +90,12 @@ - (void)setUp
89
90
90
91
_bridge = [OCMockObject mockForClass: [RCTDummyBridge class ]];
91
92
93
+ _callableJSModules = [RCTCallableJSModules new ];
94
+ [_callableJSModules setBridge: _bridge];
95
+
92
96
_eventDispatcher = [RCTEventDispatcher new ];
93
97
[_eventDispatcher setValue: _bridge forKey: @" bridge" ];
98
+ [_eventDispatcher setValue: _callableJSModules forKey: @" callableJSModules" ];
94
99
95
100
_eventName = RCTNormalizeInputEventName (@" sampleEvent" );
96
101
_body = @{ @" foo" : @" bar" };
@@ -161,8 +166,8 @@ - (void)testRunningTheDispatchedBlockResultInANewOneBeingEnqueued
161
166
[_bridge verify ];
162
167
163
168
// eventsEmittingBlock would be called when js is no longer busy, which will result in emitting events
164
- [[_bridge expect ] enqueueJSCall : [[_testEvent class ] moduleDotMethod ]
165
- args: [_testEvent arguments ]];
169
+ [self _expectBridgeJSCall : [[_testEvent class ] moduleDotMethod ]
170
+ args: [_testEvent arguments ]];
166
171
eventsEmittingBlock ();
167
172
[_bridge verify ];
168
173
@@ -179,8 +184,8 @@ - (void)testBasicCoalescingReturnsLastEvent
179
184
eventsEmittingBlock = block;
180
185
return YES ;
181
186
}] queue: RCTJSThread];
182
- [[_bridge expect ] enqueueJSCall : [[_testEvent class ] moduleDotMethod ]
183
- args: [_testEvent arguments ]];
187
+ [self _expectBridgeJSCall : [[_testEvent class ] moduleDotMethod ]
188
+ args: [_testEvent arguments ]];
184
189
185
190
RCTTestEvent *ignoredEvent = [[RCTTestEvent alloc ] initWithViewTag: nil
186
191
eventName: _eventName
@@ -206,10 +211,10 @@ - (void)testDifferentEventTypesDontCoalesce
206
211
eventsEmittingBlock = block;
207
212
return YES ;
208
213
}] queue: RCTJSThread];
209
- [[_bridge expect ] enqueueJSCall : [[_testEvent class ] moduleDotMethod ]
210
- args: [firstEvent arguments ]];
211
- [[_bridge expect ] enqueueJSCall : [[_testEvent class ] moduleDotMethod ]
212
- args: [_testEvent arguments ]];
214
+ [self _expectBridgeJSCall : [[_testEvent class ] moduleDotMethod ]
215
+ args: [firstEvent arguments ]];
216
+ [self _expectBridgeJSCall : [[_testEvent class ] moduleDotMethod ]
217
+ args: [_testEvent arguments ]];
213
218
214
219
215
220
[_eventDispatcher sendEvent: firstEvent];
@@ -235,10 +240,10 @@ - (void)testDifferentViewTagsDontCoalesce
235
240
eventsEmittingBlock = block;
236
241
return YES ;
237
242
}] queue: RCTJSThread];
238
- [[_bridge expect ] enqueueJSCall : [[firstEvent class ] moduleDotMethod ]
239
- args: [firstEvent arguments ]];
240
- [[_bridge expect ] enqueueJSCall : [[secondEvent class ] moduleDotMethod ]
241
- args: [secondEvent arguments ]];
243
+ [self _expectBridgeJSCall : [[firstEvent class ] moduleDotMethod ]
244
+ args: [firstEvent arguments ]];
245
+ [self _expectBridgeJSCall : [[secondEvent class ] moduleDotMethod ]
246
+ args: [secondEvent arguments ]];
242
247
243
248
244
249
[_eventDispatcher sendEvent: firstEvent];
@@ -265,10 +270,10 @@ - (void)testSameEventTypesWithDifferentCoalesceKeysDontCoalesce
265
270
eventsEmittingBlock = block;
266
271
return YES ;
267
272
}] queue: RCTJSThread];
268
- [[_bridge expect ] enqueueJSCall : [[_testEvent class ] moduleDotMethod ]
269
- args: [firstEvent arguments ]];
270
- [[_bridge expect ] enqueueJSCall : [[_testEvent class ] moduleDotMethod ]
271
- args: [secondEvent arguments ]];
273
+ [self _expectBridgeJSCall : [[_testEvent class ] moduleDotMethod ]
274
+ args: [firstEvent arguments ]];
275
+ [self _expectBridgeJSCall : [[_testEvent class ] moduleDotMethod ]
276
+ args: [secondEvent arguments ]];
272
277
273
278
274
279
[_eventDispatcher sendEvent: firstEvent];
@@ -284,4 +289,15 @@ - (void)testSameEventTypesWithDifferentCoalesceKeysDontCoalesce
284
289
[_bridge verify ];
285
290
}
286
291
292
+ -(void )_expectBridgeJSCall : (NSString *)moduleDotMethod args : (NSArray *)args
293
+ {
294
+ NSArray <NSString *> *const components = [moduleDotMethod componentsSeparatedByString: @" ." ];
295
+ NSString *const moduleName = components[0 ];
296
+ NSString *const methodName = components[1 ];
297
+ [[_bridge expect ] enqueueJSCall: moduleName
298
+ method: methodName
299
+ args: args
300
+ completion: NULL ];
301
+ }
302
+
287
303
@end
0 commit comments