mirror of
https://github.com/AppFlowy-IO/AppFlowy.git
synced 2025-06-27 02:50:15 +00:00

* fix: outline doesn't show when @dates are used in the headline * feat: add open app deeplink handler * fix: database falling infinitely on mobile
65 lines
2.2 KiB
Dart
65 lines
2.2 KiB
Dart
import 'package:appflowy/startup/tasks/deeplink/deeplink_handler.dart';
|
|
import 'package:appflowy/startup/tasks/deeplink/invitation_deeplink_handler.dart';
|
|
import 'package:appflowy/startup/tasks/deeplink/login_deeplink_handler.dart';
|
|
import 'package:appflowy/startup/tasks/deeplink/open_app_deeplink_handler.dart';
|
|
import 'package:appflowy/startup/tasks/deeplink/payment_deeplink_handler.dart';
|
|
import 'package:flutter_test/flutter_test.dart';
|
|
|
|
void main() {
|
|
group('deep link handler: ', () {
|
|
final deepLinkHandlerRegistry = DeepLinkHandlerRegistry.instance
|
|
..register(LoginDeepLinkHandler())
|
|
..register(PaymentDeepLinkHandler())
|
|
..register(InvitationDeepLinkHandler())
|
|
..register(OpenAppDeepLinkHandler());
|
|
|
|
test('invitation deep link handler', () {
|
|
final uri = Uri.parse(
|
|
'appflowy-flutter://invitation-callback?email=lucas@appflowy.com&workspace_id=123',
|
|
);
|
|
deepLinkHandlerRegistry.processDeepLink(
|
|
uri: uri,
|
|
onStateChange: (handler, state) {
|
|
expect(handler, isA<InvitationDeepLinkHandler>());
|
|
},
|
|
onResult: (handler, result) {
|
|
expect(handler, isA<InvitationDeepLinkHandler>());
|
|
expect(result.isSuccess, true);
|
|
},
|
|
onError: (error) {
|
|
expect(error, isNull);
|
|
},
|
|
);
|
|
});
|
|
|
|
test('login deep link handler', () {
|
|
final uri =
|
|
Uri.parse('appflowy-flutter://login-callback#access_token=123');
|
|
expect(LoginDeepLinkHandler().canHandle(uri), true);
|
|
});
|
|
|
|
test('payment deep link handler', () {
|
|
final uri = Uri.parse('appflowy-flutter://payment-success');
|
|
expect(PaymentDeepLinkHandler().canHandle(uri), true);
|
|
});
|
|
|
|
test('unknown deep link handler', () {
|
|
final uri =
|
|
Uri.parse('appflowy-flutter://unknown-callback?workspace_id=123');
|
|
deepLinkHandlerRegistry.processDeepLink(
|
|
uri: uri,
|
|
onStateChange: (handler, state) {},
|
|
onResult: (handler, result) {},
|
|
onError: (error) {
|
|
expect(error, isNotNull);
|
|
},
|
|
);
|
|
});
|
|
|
|
test('open app deep link handler', () {
|
|
final uri = Uri.parse('appflowy-flutter://');
|
|
expect(OpenAppDeepLinkHandler().canHandle(uri), true);
|
|
});
|
|
});
|
|
}
|