[dashboard] Create fake for FlutterAppIcon in tests (#2090)
diff --git a/dashboard/pubspec.lock b/dashboard/pubspec.lock
index 76f2a8e..80d3164 100644
--- a/dashboard/pubspec.lock
+++ b/dashboard/pubspec.lock
@@ -194,7 +194,7 @@
name: flutter_app_icons
url: "https://pub.dartlang.org"
source: hosted
- version: "0.0.3"
+ version: "0.0.8"
flutter_lints:
dependency: "direct dev"
description:
@@ -610,5 +610,5 @@
source: hosted
version: "3.1.0"
sdks:
- dart: ">=2.18.0-120.0.dev <3.0.0"
+ dart: ">=2.17.0-206.0.dev <3.0.0"
flutter: ">=2.8.0"
diff --git a/dashboard/pubspec.yaml b/dashboard/pubspec.yaml
index 36a6375..bd25fb6 100644
--- a/dashboard/pubspec.yaml
+++ b/dashboard/pubspec.yaml
@@ -31,7 +31,7 @@
protobuf: ^2.0.1
provider: ^6.0.2
url_launcher: ^6.1.5
- flutter_app_icons: ^0.0.3
+ flutter_app_icons: ^0.0.8
dev_dependencies:
build_runner: ^2.2.0
diff --git a/dashboard/test/build_dashboard_page_test.dart b/dashboard/test/build_dashboard_page_test.dart
index 37e0228..d017d95 100644
--- a/dashboard/test/build_dashboard_page_test.dart
+++ b/dashboard/test/build_dashboard_page_test.dart
@@ -5,6 +5,7 @@
import 'dart:async';
import 'package:flutter/material.dart';
+import 'package:flutter_app_icons/flutter_app_icons_platform_interface.dart';
import 'package:flutter_dashboard/build_dashboard_page.dart';
import 'package:flutter_dashboard/model/branch.pb.dart';
import 'package:flutter_dashboard/model/build_status_response.pb.dart';
@@ -21,6 +22,7 @@
import 'package:mockito/mockito.dart';
import 'utils/fake_build.dart';
+import 'utils/fake_flutter_app_icons.dart';
import 'utils/fake_google_account.dart';
import 'utils/golden.dart';
import 'utils/mocks.dart';
@@ -46,6 +48,8 @@
fakeAuthService = MockGoogleSignInService();
when(fakeAuthService.isAuthenticated).thenAnswer((_) => Future<bool>.value(true));
when(fakeAuthService.user).thenReturn(FakeGoogleSignInAccount());
+
+ FlutterAppIconsPlatform.instance = FakeFlutterAppIcons();
});
testWidgets('shows sign in button', (WidgetTester tester) async {
diff --git a/dashboard/test/state/build_test.dart b/dashboard/test/state/build_test.dart
index 68ae1d1..0650ef7 100644
--- a/dashboard/test/state/build_test.dart
+++ b/dashboard/test/state/build_test.dart
@@ -4,6 +4,7 @@
import 'dart:async';
+import 'package:flutter_app_icons/flutter_app_icons_platform_interface.dart';
import 'package:flutter_dashboard/model/branch.pb.dart';
import 'package:flutter_dashboard/model/build_status_response.pb.dart';
import 'package:flutter_dashboard/model/commit.pb.dart';
@@ -16,6 +17,7 @@
import 'package:google_sign_in/google_sign_in.dart';
import 'package:mockito/mockito.dart';
+import '../utils/fake_flutter_app_icons.dart';
import '../utils/mocks.dart';
import '../utils/output.dart';
@@ -45,6 +47,8 @@
..repository = 'flutter'
]),
);
+
+ FlutterAppIconsPlatform.instance = FakeFlutterAppIcons();
});
tearDown(() {
diff --git a/dashboard/test/utils/fake_flutter_app_icons.dart b/dashboard/test/utils/fake_flutter_app_icons.dart
new file mode 100644
index 0000000..b69f33d
--- /dev/null
+++ b/dashboard/test/utils/fake_flutter_app_icons.dart
@@ -0,0 +1,16 @@
+// Copyright 2019 The Flutter Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+import 'package:flutter_app_icons/flutter_app_icons_platform_interface.dart';
+
+class FakeFlutterAppIcons extends FlutterAppIconsPlatform {
+ @override
+ Future<String?> setIcon({
+ required String icon,
+ String oldIcon = '',
+ String appleTouchIcon = '',
+ }) async {
+ return icon;
+ }
+}
diff --git a/dashboard/test/widgets/commit_box_test.dart b/dashboard/test/widgets/commit_box_test.dart
index c0320e8..0d6b40c 100644
--- a/dashboard/test/widgets/commit_box_test.dart
+++ b/dashboard/test/widgets/commit_box_test.dart
@@ -4,11 +4,13 @@
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
+import 'package:flutter_app_icons/flutter_app_icons_platform_interface.dart';
import 'package:flutter_dashboard/model/commit.pb.dart';
import 'package:flutter_dashboard/widgets/commit_box.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:url_launcher_platform_interface/url_launcher_platform_interface.dart';
+import '../utils/fake_flutter_app_icons.dart';
import '../utils/fake_url_launcher.dart';
import '../utils/golden.dart';
@@ -34,6 +36,10 @@
),
);
+ setUp(() {
+ FlutterAppIconsPlatform.instance = FakeFlutterAppIcons();
+ });
+
testWidgets('CommitBox shows information correctly', (WidgetTester tester) async {
await tester.pumpWidget(basicApp);
await expectGoldenMatches(find.byType(Overlay), 'commit_box_test.idle.png');
diff --git a/dashboard/test/widgets/task_grid_test.dart b/dashboard/test/widgets/task_grid_test.dart
index 38e8556..f9ac966 100644
--- a/dashboard/test/widgets/task_grid_test.dart
+++ b/dashboard/test/widgets/task_grid_test.dart
@@ -7,6 +7,7 @@
import 'package:flutter/gestures.dart';
import 'package:flutter/material.dart';
import 'package:flutter/rendering.dart';
+import 'package:flutter_app_icons/flutter_app_icons_platform_interface.dart';
import 'package:flutter_dashboard/logic/qualified_task.dart';
import 'package:flutter_dashboard/logic/task_grid_filter.dart';
import 'package:flutter_dashboard/model/commit.pb.dart';
@@ -23,11 +24,16 @@
import 'package:flutter_test/flutter_test.dart';
import '../utils/fake_build.dart';
+import '../utils/fake_flutter_app_icons.dart';
import '../utils/golden.dart';
import '../utils/mocks.dart';
import '../utils/task_icons.dart';
void main() {
+ setUp(() {
+ FlutterAppIconsPlatform.instance = FakeFlutterAppIcons();
+ });
+
testWidgets('TaskGridContainer shows loading indicator when statuses is empty', (WidgetTester tester) async {
await tester.pumpWidget(
MaterialApp(