@@ -13,6 +13,7 @@ import 'package:dwds/src/debugging/location.dart';
1313import 'package:dwds/src/debugging/skip_list.dart' ;
1414import 'package:dwds/src/services/batched_expression_evaluator.dart' ;
1515import 'package:dwds/src/services/expression_evaluator.dart' ;
16+ import 'package:dwds/src/utilities/shared.dart' ;
1617
1718import 'package:test/test.dart' ;
1819import 'package:vm_service/vm_service.dart' hide LogRecord;
@@ -36,6 +37,7 @@ void main() async {
3637
3738 late StreamController <DebuggerPausedEvent > pausedController;
3839 late StreamController <Event > debugEventController;
40+ late FakeInspector inspector;
3941 setUp (() async {
4042 final assetReader = FakeAssetReader (sourceMap: '' );
4143 final toolConfiguration = TestToolConfiguration .withLoadStrategy (
@@ -64,8 +66,7 @@ void main() async {
6466 skipLists,
6567 root,
6668 );
67- final inspector =
68- FakeInspector (webkitDebugger, fakeIsolate: simpleIsolate);
69+ inspector = FakeInspector (webkitDebugger, fakeIsolate: simpleIsolate);
6970 debugger.updateInspector (inspector);
7071
7172 _evaluator = ExpressionEvaluator (
@@ -192,6 +193,21 @@ void main() async {
192193 );
193194 });
194195
196+ test ('retries failed batched expression' , () async {
197+ safeUnawaited (
198+ evaluator.evaluateExpression ('2' , 'main.dart' , 'true' , {}),
199+ );
200+
201+ await evaluator.evaluateExpression ('2' , 'main.dart' , 'false' , {});
202+ expect (inspector.functionsCalled.length, 3 );
203+ expect (
204+ inspector.functionsCalled[0 ].contains ('return [ true, false ];' ),
205+ true ,
206+ );
207+ expect (inspector.functionsCalled[1 ].contains ('return true;' ), true );
208+ expect (inspector.functionsCalled[2 ].contains ('return false;' ), true );
209+ });
210+
195211 test ('returns error if closed' , () async {
196212 evaluator.close ();
197213 final result =
0 commit comments