mirror of
https://github.com/foss42/apidash.git
synced 2025-08-06 13:51:20 +08:00
Added test cases for Custom markdown working
This commit is contained in:
@ -9,9 +9,12 @@ class CustomMarkdown extends StatelessWidget {
|
|||||||
super.key,
|
super.key,
|
||||||
required this.data,
|
required this.data,
|
||||||
this.padding = const EdgeInsets.all(16.0),
|
this.padding = const EdgeInsets.all(16.0),
|
||||||
|
this.onTapLink,
|
||||||
});
|
});
|
||||||
|
|
||||||
final String data;
|
final String data;
|
||||||
final EdgeInsets padding;
|
final EdgeInsets padding;
|
||||||
|
final void Function(String text, String? href, String title)? onTapLink;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
@ -25,7 +28,8 @@ class CustomMarkdown extends StatelessWidget {
|
|||||||
data: data,
|
data: data,
|
||||||
selectable: true,
|
selectable: true,
|
||||||
extensionSet: md.ExtensionSet.gitHubFlavored,
|
extensionSet: md.ExtensionSet.gitHubFlavored,
|
||||||
onTapLink: (text, href, title) {
|
onTapLink: onTapLink ??
|
||||||
|
(text, href, title) {
|
||||||
launchUrl(Uri.parse(href ?? ""));
|
launchUrl(Uri.parse(href ?? ""));
|
||||||
},
|
},
|
||||||
builders: {
|
builders: {
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
|
import 'package:flutter/gestures.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter/services.dart';
|
import 'package:flutter/services.dart';
|
||||||
|
import 'package:flutter_markdown/flutter_markdown.dart';
|
||||||
import 'package:flutter_test/flutter_test.dart';
|
import 'package:flutter_test/flutter_test.dart';
|
||||||
import 'package:apidash/widgets/markdown.dart';
|
import 'package:apidash/widgets/markdown.dart';
|
||||||
|
|
||||||
@ -32,7 +34,7 @@ void main() {
|
|||||||
expect(markdownTextFinder, findsOneWidget);
|
expect(markdownTextFinder, findsOneWidget);
|
||||||
});
|
});
|
||||||
|
|
||||||
testWidgets('CustomMarkdown onTapLink callback works',
|
testWidgets('CustomMarkdown has proper text rendered',
|
||||||
(WidgetTester tester) async {
|
(WidgetTester tester) async {
|
||||||
await tester.pumpWidget(MaterialApp(
|
await tester.pumpWidget(MaterialApp(
|
||||||
home: GestureDetector(
|
home: GestureDetector(
|
||||||
@ -45,10 +47,29 @@ void main() {
|
|||||||
await tester.tap(find.text('Link Text'));
|
await tester.tap(find.text('Link Text'));
|
||||||
await tester.pump();
|
await tester.pump();
|
||||||
|
|
||||||
|
|
||||||
expect(find.text('Link Text'), findsOneWidget);
|
expect(find.text('Link Text'), findsOneWidget);
|
||||||
|
|
||||||
expect(find.text('https://apidash.dev/'), findsNothing);
|
expect(find.text('https://apidash.dev/'), findsNothing);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
testWidgets('CustomMarkdown creates hyperlink',
|
||||||
|
(WidgetTester tester) async {
|
||||||
|
bool linkTapped = false;
|
||||||
|
await tester.pumpWidget(MaterialApp(
|
||||||
|
home: CustomMarkdown(
|
||||||
|
data: '[Link Text](https://apidash.dev/)',
|
||||||
|
onTapLink: (text, href, title) {
|
||||||
|
linkTapped = true;
|
||||||
|
expect(text, 'Link Text');
|
||||||
|
expect(href, 'https://apidash.dev/');
|
||||||
|
},
|
||||||
|
),
|
||||||
|
));
|
||||||
|
expect(find.byType(Markdown), findsOneWidget);
|
||||||
|
final markdownWidget = tester.widget<Markdown>(find.byType(Markdown));
|
||||||
|
expect(markdownWidget.data, '[Link Text](https://apidash.dev/)');
|
||||||
|
await tester.tap(find.text('Link Text'));
|
||||||
|
expect(linkTapped, true);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user