|
@@ -3,6 +3,10 @@ import 'dart:collection';
|
|
|
import 'package:flowy_editor/document/node.dart';
|
|
|
import 'package:flutter_test/flutter_test.dart';
|
|
|
import 'package:flowy_editor/operation/operation.dart';
|
|
|
+import 'package:flowy_editor/operation/transaction_builder.dart';
|
|
|
+import 'package:flowy_editor/editor_state.dart';
|
|
|
+import 'package:flowy_editor/document/state_tree.dart';
|
|
|
+import 'package:flowy_editor/render/render_plugins.dart';
|
|
|
|
|
|
void main() {
|
|
|
group('transform path', () {
|
|
@@ -46,4 +50,33 @@ void main() {
|
|
|
expect(t.path, [0, 1]);
|
|
|
});
|
|
|
});
|
|
|
+ test('transform transaction builder', () {
|
|
|
+ final item1 = Node(type: "node", attributes: {}, children: LinkedList());
|
|
|
+ final item2 = Node(type: "node", attributes: {}, children: LinkedList());
|
|
|
+ final item3 = Node(type: "node", attributes: {}, children: LinkedList());
|
|
|
+ final root = Node(
|
|
|
+ type: "root",
|
|
|
+ attributes: {},
|
|
|
+ children: LinkedList()
|
|
|
+ ..addAll([
|
|
|
+ item1,
|
|
|
+ item2,
|
|
|
+ item3,
|
|
|
+ ]));
|
|
|
+ final state = EditorState(
|
|
|
+ document: StateTree(root: root), renderPlugins: RenderPlugins());
|
|
|
+
|
|
|
+ expect(item1.path, [0]);
|
|
|
+ expect(item2.path, [1]);
|
|
|
+ expect(item3.path, [2]);
|
|
|
+
|
|
|
+ final tb = TransactionBuilder(state);
|
|
|
+ tb.deleteNode(item1);
|
|
|
+ tb.deleteNode(item2);
|
|
|
+ tb.deleteNode(item3);
|
|
|
+ final transaction = tb.finish();
|
|
|
+ expect(transaction.operations[0].path, [0]);
|
|
|
+ expect(transaction.operations[1].path, [0]);
|
|
|
+ expect(transaction.operations[2].path, [0]);
|
|
|
+ });
|
|
|
}
|