mirror of
https://github.com/AppFlowy-IO/AppFlowy.git
synced 2024-08-30 18:12:39 +00:00
fix: import table from markdown (#4881)
* fix: fixed error while importing table from markdown * test: added test for the changes made * fix: made changes from code review * chore: remove the force unwrap code --------- Co-authored-by: Lucas.Xu <lucas.xu@appflowy.io>
This commit is contained in:
parent
73df51f35f
commit
9201cd6347
@ -0,0 +1,11 @@
|
||||
# AppFlowy Test Markdown import with table
|
||||
|
||||
# Table
|
||||
|
||||
| S.No. | Column 2 |
|
||||
| --- | --- |
|
||||
| 1. | row 1 |
|
||||
| 2. | row 2 |
|
||||
| 3. | row 3 |
|
||||
| 4. | row 4 |
|
||||
| 5. | row 5 |
|
@ -1,5 +1,6 @@
|
||||
import 'dart:io';
|
||||
|
||||
import 'package:appflowy_editor/appflowy_editor.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:flutter_test/flutter_test.dart';
|
||||
import 'package:integration_test/integration_test.dart';
|
||||
@ -44,5 +45,44 @@ void main() {
|
||||
tester.expectToSeePageName('test1');
|
||||
tester.expectToSeePageName('test2');
|
||||
});
|
||||
|
||||
testWidgets('import markdown file with table', (tester) async {
|
||||
final context = await tester.initializeAppFlowy();
|
||||
await tester.tapGoButton();
|
||||
|
||||
// expect to see a getting started page
|
||||
tester.expectToSeePageName(gettingStarted);
|
||||
|
||||
await tester.tapAddViewButton();
|
||||
await tester.tapImportButton();
|
||||
|
||||
const testFileName = 'markdown_with_table.md';
|
||||
final paths = <String>[];
|
||||
final str = await rootBundle.loadString(
|
||||
'assets/test/workspaces/markdowns/$testFileName',
|
||||
);
|
||||
final path = p.join(context.applicationDataDirectory, testFileName);
|
||||
paths.add(path);
|
||||
File(path).writeAsStringSync(str);
|
||||
// mock get files
|
||||
mockPickFilePaths(
|
||||
paths: paths,
|
||||
);
|
||||
|
||||
await tester.tapTextAndMarkdownButton();
|
||||
|
||||
tester.expectToSeePageName('markdown_with_table');
|
||||
|
||||
// expect to see all content of markdown file along with table
|
||||
await tester.openPage('markdown_with_table');
|
||||
|
||||
final importedPageEditorState = tester.editor.getCurrentEditorState();
|
||||
expect(importedPageEditorState.getNodeAtPath([0])!.type,
|
||||
HeadingBlockKeys.type,);
|
||||
expect(importedPageEditorState.getNodeAtPath([2])!.type,
|
||||
HeadingBlockKeys.type,);
|
||||
expect(importedPageEditorState.getNodeAtPath([4])!.type,
|
||||
TableBlockKeys.type,);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
@ -59,11 +59,11 @@ extension DocumentDataPBFromTo on DocumentDataPB {
|
||||
|
||||
// generate the meta
|
||||
final childrenMap = <String, ChildrenPB>{};
|
||||
blocks.forEach((key, value) {
|
||||
final parentId = value.parentId;
|
||||
if (parentId.isNotEmpty) {
|
||||
childrenMap[parentId] ??= ChildrenPB.create();
|
||||
childrenMap[parentId]!.children.add(value.id);
|
||||
blocks.values.where((e) => e.parentId.isNotEmpty).forEach((value) {
|
||||
final childrenId = blocks[value.parentId]?.childrenId;
|
||||
if (childrenId != null) {
|
||||
childrenMap[childrenId] ??= ChildrenPB.create();
|
||||
childrenMap[childrenId]!.children.add(value.id);
|
||||
}
|
||||
});
|
||||
final meta = MetaPB(childrenMap: childrenMap);
|
||||
|
Loading…
Reference in New Issue
Block a user