Skip to content

Commit eb2da85

Browse files
committed
chore: ensure testEventSink is not null before posting error reason
1 parent 272d567 commit eb2da85

File tree

3 files changed

+11
-7
lines changed

3 files changed

+11
-7
lines changed

packages/firebase_crashlytics/firebase_crashlytics/android/src/main/java/io/flutter/plugins/firebase/crashlytics/FlutterFirebaseCrashlyticsPlugin.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -172,7 +172,9 @@ private Task<Void> recordError(final Map<String, Object> arguments) {
172172
Exception exception;
173173
if (reason != null) {
174174
final String crashlyticsErrorReason = "thrown " + reason;
175-
mainHandler.post(() -> testEventSink.success(crashlyticsErrorReason));
175+
if (testEventSink != null) {
176+
mainHandler.post(() -> testEventSink.success(crashlyticsErrorReason));
177+
}
176178
// Set a "reason" (to match iOS) to show where the exception was thrown.
177179
crashlytics.setCustomKey(Constants.FLUTTER_ERROR_REASON, crashlyticsErrorReason);
178180
exception =

packages/firebase_crashlytics/firebase_crashlytics/ios/firebase_crashlytics/Sources/firebase_crashlytics/FLTFirebaseCrashlyticsPlugin.m

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -139,9 +139,11 @@ - (void)recordError:(id)arguments withMethodCallResult:(FLTFirebaseMethodCallRes
139139
if (![reason isEqual:[NSNull null]]) {
140140
NSString *crashlyticsErrorReason = [NSString stringWithFormat:@"thrown %@", reason];
141141

142-
self.testEventSink(crashlyticsErrorReason);
142+
if (self.testEventSink) {
143+
self.testEventSink(crashlyticsErrorReason);
144+
}
143145
// Log additional custom value to match Android.
144-
[[FIRCrashlytics crashlytics] setCustomValue:[NSString stringWithFormat:@"thrown %@", reason]
146+
[[FIRCrashlytics crashlytics] setCustomValue:crashlyticsErrorReason
145147
forKey:@"flutter_error_reason"];
146148
reason = [NSString stringWithFormat:@"%@. Error thrown %@.", dartExceptionMessage, reason];
147149
} else {

tests/integration_test/firebase_crashlytics/firebase_crashlytics_e2e_test.dart

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -110,8 +110,7 @@ void main() {
110110

111111
final completer = Completer<String>();
112112

113-
eventStream.listen((event) {
114-
print('Received event: $event');
113+
final subscription = eventStream.listen((event) {
115114
completer.complete(event.toString());
116115
});
117116

@@ -122,9 +121,10 @@ void main() {
122121
);
123122

124123
final event = await completer.future;
125-
expect(event, 'thrown foooo reason');
124+
expect(event, 'thrown foo reason');
125+
await subscription.cancel();
126126
},
127-
skip: kIsWeb || defaultTargetPlatform == TargetPlatform.macOS || !isCI,
127+
skip: kIsWeb || defaultTargetPlatform == TargetPlatform.macOS,
128128
);
129129
});
130130

0 commit comments

Comments
 (0)