diff --git a/packages/flutter_tools/lib/src/base/user_messages.dart b/packages/flutter_tools/lib/src/base/user_messages.dart index a1f1d9127ff..985b9ce964e 100644 --- a/packages/flutter_tools/lib/src/base/user_messages.dart +++ b/packages/flutter_tools/lib/src/base/user_messages.dart @@ -167,8 +167,8 @@ class UserMessages { '$consequence\n' 'To upgrade:\n' '$upgradeInstructions'; - String cocoaPodsOutdated(String recVersion, String consequence, String upgradeInstructions) => - 'CocoaPods out of date ($recVersion is recommended).\n' + String cocoaPodsOutdated(String currentVersion, String recVersion, String consequence, String upgradeInstructions) => + 'CocoaPods $currentVersion out of date ($recVersion is recommended).\n' '$consequence\n' 'To upgrade:\n' '$upgradeInstructions'; diff --git a/packages/flutter_tools/lib/src/macos/cocoapods_validator.dart b/packages/flutter_tools/lib/src/macos/cocoapods_validator.dart index ce57632705d..1bd13c8b7c8 100644 --- a/packages/flutter_tools/lib/src/macos/cocoapods_validator.dart +++ b/packages/flutter_tools/lib/src/macos/cocoapods_validator.dart @@ -45,8 +45,9 @@ class CocoaPodsValidator extends DoctorValidator { userMessages.cocoaPodsUnknownVersion(unknownCocoaPodsConsequence, cocoaPodsUpgradeInstructions))); } else { status = ValidationType.partial; + final String currentVersionText = await cocoaPods.cocoaPodsVersionText; messages.add(ValidationMessage.hint( - userMessages.cocoaPodsOutdated(cocoaPods.cocoaPodsRecommendedVersion, noCocoaPodsConsequence, cocoaPodsUpgradeInstructions))); + userMessages.cocoaPodsOutdated(currentVersionText, cocoaPods.cocoaPodsRecommendedVersion, noCocoaPodsConsequence, cocoaPodsUpgradeInstructions))); } } diff --git a/packages/flutter_tools/test/general.shard/macos/cocoapods_validator_test.dart b/packages/flutter_tools/test/general.shard/macos/cocoapods_validator_test.dart index 59c838ac845..46c3b5cceea 100644 --- a/packages/flutter_tools/test/general.shard/macos/cocoapods_validator_test.dart +++ b/packages/flutter_tools/test/general.shard/macos/cocoapods_validator_test.dart @@ -62,9 +62,20 @@ void main() { testUsingContext('Emits partial status when CocoaPods version is too low', () async { when(cocoaPods.evaluateCocoaPodsInstallation) .thenAnswer((_) async => CocoaPodsStatus.belowRecommendedVersion); + const String currentVersion = '1.4.0'; + when(cocoaPods.cocoaPodsVersionText) + .thenAnswer((_) async => currentVersion); + const String recommendedVersion = '1.8.0'; + when(cocoaPods.cocoaPodsRecommendedVersion) + .thenAnswer((_) => recommendedVersion); const CocoaPodsValidator workflow = CocoaPodsValidator(); final ValidationResult result = await workflow.validate(); expect(result.type, ValidationType.partial); + expect(result.messages.length, 1); + final ValidationMessage message = result.messages.first; + expect(message.type, ValidationMessageType.hint); + expect(message.message, contains('CocoaPods $currentVersion out of date')); + expect(message.message, contains('($recommendedVersion is recommended)')); }, overrides: { CocoaPods: () => cocoaPods, });