diff --git a/lib/features/mongodb/mongo_documents_json_view.dart b/lib/features/mongodb/mongo_documents_json_view.dart index 9d6e8b72..dae6b4d0 100644 --- a/lib/features/mongodb/mongo_documents_json_view.dart +++ b/lib/features/mongodb/mongo_documents_json_view.dart @@ -2,6 +2,7 @@ import 'package:flutter/material.dart' as material; import 'package:flutter/services.dart'; import 'package:querya_desktop/core/editor/querya_code_editor.dart'; import 'package:querya_desktop/core/editor/querya_code_language.dart'; +import 'package:querya_desktop/core/editor/syntax_highlight_service.dart'; import 'package:querya_desktop/features/mongodb/mongo_ejson.dart'; import 'package:querya_desktop/shared/widgets/app_toast.dart'; import 'package:shadcn_flutter/shadcn_flutter.dart'; @@ -27,7 +28,8 @@ class _MongoDocumentsJsonViewState extends State { @override void initState() { super.initState(); - _controller = material.TextEditingController( + _controller = SyntaxHighlightService.createHighlightController( + language: QueryaCodeLanguage.json, text: mongoDocumentsToEjson(widget.documents), ); } diff --git a/test/features/mongodb/mongo_documents_view_modes_test.dart b/test/features/mongodb/mongo_documents_view_modes_test.dart index d8e5b5df..efb041fd 100644 --- a/test/features/mongodb/mongo_documents_view_modes_test.dart +++ b/test/features/mongodb/mongo_documents_view_modes_test.dart @@ -1,5 +1,8 @@ import 'package:flutter_test/flutter_test.dart'; import 'package:mongo_dart/mongo_dart.dart' show ObjectId; +import 'package:querya_desktop/core/editor/querya_code_editor.dart'; +import 'package:querya_desktop/core/editor/querya_highlight_controller.dart'; +import 'package:querya_desktop/core/editor/syntax_highlight_service.dart'; import 'package:querya_desktop/features/mongodb/mongo_document_tree_view.dart'; import 'package:querya_desktop/features/mongodb/mongo_documents_json_view.dart'; import 'package:querya_desktop/features/mongodb/mongo_documents_table_view.dart'; @@ -203,5 +206,25 @@ void main() { expect(find.text('Copy JSON'), findsOneWidget); expect(find.text('1 documents (Extended JSON)'), findsOneWidget); }); + + testWidgets('uses QueryaHighlightController when syntax highlighting is initialized', (tester) async { + await SyntaxHighlightService.ensureInitialized(); + final docs = [ + {'field': 'value'} + ]; + + await tester.pumpWidget( + queryaThemeTestShell( + child: MongoDocumentsJsonView( + documents: docs, + ), + ), + ); + + await tester.pumpAndSettle(); + + final editor = tester.widget(find.byType(QueryaCodeEditor)); + expect(editor.controller, isA()); + }); }); }