Skip to content

Commit 81d7314

Browse files
committed
fix: Mock event channel with method channel to support old versions of flutter
1 parent a2f0c71 commit 81d7314

File tree

1 file changed

+13
-9
lines changed

1 file changed

+13
-9
lines changed

packages/supabase_flutter/test/widget_test_stubs.dart

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ void mockAppLink({
103103
String? initialLink,
104104
}) {
105105
const channel = MethodChannel('com.llfbandit.app_links/messages');
106-
const eventChannel = EventChannel('com.llfbandit.app_links/events');
106+
const eventChannel = MethodChannel('com.llfbandit.app_links/events');
107107

108108
TestWidgetsFlutterBinding.ensureInitialized();
109109

@@ -112,18 +112,22 @@ void mockAppLink({
112112
.setMockMethodCallHandler(
113113
channel, (call) async => mockMethodChannel ? initialLink : null);
114114

115+
// Mock event channel using method channel, to keep supporting older versions
116+
// of flutter_test in which setMockStreamHandler is not yet available.
115117
if (mockEventChannel) {
116118
// ignore: invalid_null_aware_operator
117119
TestDefaultBinaryMessengerBinding.instance?.defaultBinaryMessenger
118-
.setMockStreamHandler(
120+
.setMockMethodCallHandler(
119121
eventChannel,
120-
MockStreamHandler.inline(
121-
onListen: (arguments, events) {
122-
if (mockEventChannel) {
123-
events.success(initialLink);
124-
}
125-
},
126-
),
122+
(MethodCall methodCall) async {
123+
// ignore: invalid_null_aware_operator
124+
TestDefaultBinaryMessengerBinding.instance?.defaultBinaryMessenger
125+
.handlePlatformMessage(
126+
eventChannel.name,
127+
const StandardMethodCodec().encodeSuccessEnvelope(initialLink),
128+
(ByteData? data) {},
129+
);
130+
},
127131
);
128132
}
129133
}

0 commit comments

Comments
 (0)