Gleiche API, gepflegter Nachfolger. Rendertest für die Markdown-Vorschau (test/document_markdown_test.dart). Co-Authored-By: Claude Opus 5.5 <[email protected]>
43 lines
1.3 KiB
Dart
43 lines
1.3 KiB
Dart
import 'dart:convert';
|
|
import 'dart:typed_data';
|
|
|
|
import 'package:flutter/material.dart';
|
|
import 'package:flutter_test/flutter_test.dart';
|
|
import 'package:pyramid/core/theme.dart';
|
|
import 'package:pyramid/features/chat/document_viewer.dart';
|
|
|
|
/// Markdown-Vorschau (seit 2026-10-07 mit flutter_markdown_plus statt dem
|
|
/// eingestellten flutter_markdown): Überschrift, Liste, Code und Link werden
|
|
/// gezeichnet.
|
|
void main() {
|
|
testWidgets('Markdown-Datei wird in der Vorschau dargestellt', (
|
|
tester,
|
|
) async {
|
|
const md = '# Einkaufsliste\n\n'
|
|
'- **Milch**\n- _Brot_\n\n'
|
|
'`code` und [ein Link](https://example.org)\n\n'
|
|
'> Zitat\n';
|
|
await tester.pumpWidget(
|
|
PyramidTheme(
|
|
child: MaterialApp(
|
|
home: DocumentViewer(
|
|
filename: 'notizen.md',
|
|
bytes: Uint8List.fromList(utf8.encode(md)),
|
|
senderName: 'Test',
|
|
),
|
|
),
|
|
),
|
|
);
|
|
await tester.pumpAndSettle();
|
|
|
|
expect(tester.takeException(), isNull);
|
|
// Auswählbarer Text (SelectableText → EditableText) oder RichText.
|
|
bool shows(String text) =>
|
|
find.textContaining(text, findRichText: true).evaluate().isNotEmpty;
|
|
expect(shows('Einkaufsliste'), isTrue);
|
|
expect(shows('Milch'), isTrue);
|
|
expect(shows('ein Link'), isTrue);
|
|
expect(shows('Zitat'), isTrue);
|
|
});
|
|
}
|