diff --git a/lib/src/view/analysis/analysis_board.dart b/lib/src/view/analysis/analysis_board.dart index de87fddb0e..489affedcb 100644 --- a/lib/src/view/analysis/analysis_board.dart +++ b/lib/src/view/analysis/analysis_board.dart @@ -56,7 +56,7 @@ class AnalysisBoardState extends ConsumerState { : null; final bestMoves = pickBestMoves(localBestMoves: localBestMoves, savedEval: currentNode.eval); final ISet bestMoveShapes = - bestMoves != null + bestMoves != null && showBestMoveArrow ? computeBestMoveShapes( bestMoves, currentNode.position.turn, diff --git a/pubspec.lock b/pubspec.lock index cd222fe524..e76147585c 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -197,10 +197,10 @@ packages: dependency: "direct main" description: name: chessground - sha256: b5b5d329c116fdaa545de3e7e64111e1cd7a3f9813d257469b2eaa310bd157dd + sha256: "5ee24bf66674d45021d8ab5c2df0b6dc1e4072c61bea2148ac2e2c38fe2bb0dd" url: "https://pub.dev" source: hosted - version: "7.0.0" + version: "7.1.0" ci: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index 9cc52af8ad..d8b8688352 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -14,7 +14,7 @@ dependencies: async: ^2.10.0 auto_size_text: ^3.0.0 cached_network_image: ^3.2.2 - chessground: ^7.0.0 + chessground: ^7.1.0 clock: ^1.1.1 collection: ^1.17.0 connectivity_plus: ^6.0.2 diff --git a/test/view/analysis/analysis_screen_test.dart b/test/view/analysis/analysis_screen_test.dart index e61cdab360..02a4ac333c 100644 --- a/test/view/analysis/analysis_screen_test.dart +++ b/test/view/analysis/analysis_screen_test.dart @@ -475,6 +475,18 @@ void main() { await tester.pump(kStartLocalEngineDebounceDelay + kEngineEvalEmissionThrottleDelay); expect(find.widgetWithText(InlineMove, '+0.2'), findsNWidgets(2)); }); + + testWidgets('best move arrow is shown if enabled', (tester) async { + await makeEngineTestApp(tester); + await tester.pump(kStartLocalEngineDebounceDelay); + expect(find.byType(BoardShapeWidget), findsOneWidget); + }); + + testWidgets('best move arrow is not shown if disabled', (tester) async { + await makeEngineTestApp(tester, showBestMoveArrow: false); + await tester.pump(kStartLocalEngineDebounceDelay); + expect(find.byType(BoardShapeWidget), findsNothing); + }); }); } diff --git a/test/view/engine/test_engine_app.dart b/test/view/engine/test_engine_app.dart index b1d5eeee23..3f05b61f24 100644 --- a/test/view/engine/test_engine_app.dart +++ b/test/view/engine/test_engine_app.dart @@ -27,6 +27,7 @@ Future makeEngineTestApp( bool isComputerAnalysisEnabled = true, bool isEngineEnabled = true, bool isCloudEvalEnabled = true, + bool showBestMoveArrow = true, Duration connectionLag = Duration.zero, }) async { final fakeChannel = FakeWebSocketChannel( @@ -59,7 +60,12 @@ Future makeEngineTestApp( .toJson(), ), PrefCategory.analysis.storageKey: jsonEncode( - AnalysisPrefs.defaults.copyWith(enableComputerAnalysis: isComputerAnalysisEnabled).toJson(), + AnalysisPrefs.defaults + .copyWith( + enableComputerAnalysis: isComputerAnalysisEnabled, + showBestMoveArrow: showBestMoveArrow, + ) + .toJson(), ), }, overrides: [