Unverified Commit 48fab86c authored by Chris Yang's avatar Chris Yang Committed by GitHub

[flutter_tools] update pubspec .yaml message should not be displayed when...

[flutter_tools] update pubspec .yaml message should not be displayed when creating a new plugin (#62599)

* update pubspec message should not be displayed when creating a new plugin

* formatting

* revikew

* review

* cleanup
parent fbd29b88
...@@ -612,7 +612,9 @@ To edit platform code in an IDE see https://flutter.dev/developing-packages/#edi ...@@ -612,7 +612,9 @@ To edit platform code in an IDE see https://flutter.dev/developing-packages/#edi
); );
} }
if (willAddPlatforms) { final bool addPlatformsToExistingPlugin = willAddPlatforms && existingPlatforms.isNotEmpty;
if (addPlatformsToExistingPlugin) {
// If adding new platforms to an existing plugin project, prints // If adding new platforms to an existing plugin project, prints
// a help message containing the platforms maps need to be added to the `platforms` key in the pubspec. // a help message containing the platforms maps need to be added to the `platforms` key in the pubspec.
platformsToAdd.removeWhere(existingPlatforms.contains); platformsToAdd.removeWhere(existingPlatforms.contains);
......
...@@ -10,6 +10,7 @@ import 'package:args/command_runner.dart'; ...@@ -10,6 +10,7 @@ import 'package:args/command_runner.dart';
import 'package:flutter_tools/src/artifacts.dart'; import 'package:flutter_tools/src/artifacts.dart';
import 'package:flutter_tools/src/base/file_system.dart'; import 'package:flutter_tools/src/base/file_system.dart';
import 'package:flutter_tools/src/base/io.dart'; import 'package:flutter_tools/src/base/io.dart';
import 'package:flutter_tools/src/base/logger.dart';
import 'package:flutter_tools/src/base/net.dart'; import 'package:flutter_tools/src/base/net.dart';
import 'package:flutter_tools/src/base/platform.dart'; import 'package:flutter_tools/src/base/platform.dart';
import 'package:flutter_tools/src/build_info.dart'; import 'package:flutter_tools/src/build_info.dart';
...@@ -47,6 +48,7 @@ void main() { ...@@ -47,6 +48,7 @@ void main() {
Directory projectDir; Directory projectDir;
FlutterVersion mockFlutterVersion; FlutterVersion mockFlutterVersion;
LoggingProcessManager loggingProcessManager; LoggingProcessManager loggingProcessManager;
BufferLogger logger;
setUpAll(() async { setUpAll(() async {
Cache.disableLocking(); Cache.disableLocking();
...@@ -55,6 +57,7 @@ void main() { ...@@ -55,6 +57,7 @@ void main() {
setUp(() { setUp(() {
loggingProcessManager = LoggingProcessManager(); loggingProcessManager = LoggingProcessManager();
logger = BufferLogger.test();
tempDir = globals.fs.systemTempDirectory.createTempSync('flutter_tools_create_test.'); tempDir = globals.fs.systemTempDirectory.createTempSync('flutter_tools_create_test.');
projectDir = tempDir.childDirectory('flutter_project'); projectDir = tempDir.childDirectory('flutter_project');
mockFlutterVersion = MockFlutterVersion(); mockFlutterVersion = MockFlutterVersion();
...@@ -1935,6 +1938,34 @@ void main() { ...@@ -1935,6 +1938,34 @@ void main() {
FeatureFlags: () => TestFeatureFlags(isMacOSEnabled: true), FeatureFlags: () => TestFeatureFlags(isMacOSEnabled: true),
}); });
testUsingContext('flutter create -t plugin in an empty folder should not show pubspec.yaml updating suggestion', () async {
Cache.flutterRoot = '../..';
when(mockFlutterVersion.frameworkRevision).thenReturn(frameworkRevision);
when(mockFlutterVersion.channel).thenReturn(frameworkChannel);
final CreateCommand command = CreateCommand();
final CommandRunner<void> runner = createTestCommandRunner(command);
await runner.run(<String>['create', '--no-pub', '--template=plugin', '--platforms=android', projectDir.path]);
expect(logger.statusText, isNot(contains('The `pubspec.yaml` under the project directory must be updated to support')));
}, overrides: <Type, Generator> {
Logger: () => logger,
});
testUsingContext('flutter create -t plugin in an existing plugin should show pubspec.yaml updating suggestion', () async {
Cache.flutterRoot = '../..';
when(mockFlutterVersion.frameworkRevision).thenReturn(frameworkRevision);
when(mockFlutterVersion.channel).thenReturn(frameworkChannel);
final CreateCommand command = CreateCommand();
final CommandRunner<void> runner = createTestCommandRunner(command);
await runner.run(<String>['create', '--no-pub', '--template=plugin', '--platforms=ios', projectDir.path]);
expect(logger.statusText, isNot(contains('The `pubspec.yaml` under the project directory must be updated to support')));
await runner.run(<String>['create', '--no-pub', '--template=plugin', '--platforms=android', projectDir.path]);
expect(logger.statusText, contains('The `pubspec.yaml` under the project directory must be updated to support'));
}, overrides: <Type, Generator> {
Logger: () => logger,
});
} }
Future<void> _createProject( Future<void> _createProject(
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment