diff --git a/packages/flutter_tools/lib/src/doctor.dart b/packages/flutter_tools/lib/src/doctor.dart index 840a203b6b6..399aa46d723 100644 --- a/packages/flutter_tools/lib/src/doctor.dart +++ b/packages/flutter_tools/lib/src/doctor.dart @@ -21,6 +21,7 @@ import 'base/terminal.dart'; import 'base/user_messages.dart'; import 'base/utils.dart'; import 'cache.dart'; +import 'custom_devices/custom_device_workflow.dart'; import 'device.dart'; import 'doctor_validator.dart'; import 'features.dart'; @@ -93,6 +94,10 @@ class _DefaultDoctorValidatorsProvider implements DoctorValidatorsProvider { featureFlags: featureFlags, ); + late final CustomDeviceWorkflow customDeviceWorkflow = CustomDeviceWorkflow( + featureFlags: featureFlags, + ); + @override List get validators { if (_validators != null) { @@ -200,6 +205,9 @@ class _DefaultDoctorValidatorsProvider implements DoctorValidatorsProvider { _workflows!.add(webWorkflow); } + if (customDeviceWorkflow.appliesToHostPlatform) { + _workflows!.add(customDeviceWorkflow); + } } return _workflows!; } diff --git a/packages/flutter_tools/test/commands.shard/hermetic/doctor_test.dart b/packages/flutter_tools/test/commands.shard/hermetic/doctor_test.dart index 6a8a9321da4..172ae7daa13 100644 --- a/packages/flutter_tools/test/commands.shard/hermetic/doctor_test.dart +++ b/packages/flutter_tools/test/commands.shard/hermetic/doctor_test.dart @@ -17,6 +17,7 @@ import 'package:flutter_tools/src/base/user_messages.dart'; import 'package:flutter_tools/src/build_info.dart'; import 'package:flutter_tools/src/cache.dart'; import 'package:flutter_tools/src/commands/doctor.dart'; +import 'package:flutter_tools/src/custom_devices/custom_device_workflow.dart'; import 'package:flutter_tools/src/device.dart'; import 'package:flutter_tools/src/doctor.dart'; import 'package:flutter_tools/src/doctor_validator.dart'; @@ -750,6 +751,20 @@ void main() { ProcessManager: () => fakeProcessManager, }); + testUsingContext('CustomDevicesWorkflow is a part of validator workflows if enabled', () async { + final List workflows = DoctorValidatorsProvider.test( + featureFlags: TestFeatureFlags(areCustomDevicesEnabled: true), + platform: FakePlatform(), + ).workflows; + expect( + workflows, + contains(isA()), + ); + }, overrides: { + FileSystem: () => MemoryFileSystem.test(), + ProcessManager: () => fakeProcessManager, + }); + testUsingContext('Fetches tags to get the right version', () async { Cache.disableLocking();