diff --git a/packages/flutter_tools/lib/src/commands/packages.dart b/packages/flutter_tools/lib/src/commands/packages.dart index 62588179c6..7797e901d3 100644 --- a/packages/flutter_tools/lib/src/commands/packages.dart +++ b/packages/flutter_tools/lib/src/commands/packages.dart @@ -38,6 +38,7 @@ class PackagesCommand extends FlutterCommand { addSubcommand(PackagesForwardCommand('logout', 'Log out of pub.dev.')); addSubcommand(PackagesForwardCommand('global', 'Work with Pub global packages')); addSubcommand(PackagesForwardCommand('outdated', 'Analyze dependencies to find which ones can be upgraded', requiresPubspec: true)); + addSubcommand(PackagesForwardCommand('token', 'Manage authentication tokens for hosted pub repositories.')); addSubcommand(PackagesPassthroughCommand()); } diff --git a/packages/flutter_tools/test/commands.shard/permeable/packages_test.dart b/packages/flutter_tools/test/commands.shard/permeable/packages_test.dart index da0f49d4df..95c5b0b4e2 100644 --- a/packages/flutter_tools/test/commands.shard/permeable/packages_test.dart +++ b/packages/flutter_tools/test/commands.shard/permeable/packages_test.dart @@ -525,6 +525,34 @@ void main() { ), }); + testUsingContext('token pass arguments through to pub', () async { + Cache.flutterRoot = ''; + globals.fs.file('pubspec.yaml').createSync(); + final IOSink stdin = IOSink(StreamController>().sink); + processManager.addCommand( + FakeCommand(command: const [ + '/bin/cache/dart-sdk/bin/dart', '__deprecated_pub', 'token', 'list'], + stdin: stdin, + ), + ); + await createTestCommandRunner(PackagesCommand()).run(['packages', '--verbose', 'pub', 'token', 'list']); + + expect(processManager, hasNoRemainingExpectations); + }, overrides: { + FileSystem: () => MemoryFileSystem.test(), + Platform: () => FakePlatform(environment: {}), + ProcessManager: () => processManager, + Stdio: () => mockStdio, + Pub: () => Pub( + fileSystem: globals.fs, + logger: globals.logger, + processManager: globals.processManager, + usage: globals.flutterUsage, + botDetector: globals.botDetector, + platform: globals.platform, + ), + }); + testUsingContext('upgrade does not check for pubspec.yaml if -h/--help is passed', () async { Cache.flutterRoot = ''; processManager.addCommand(