| // Copyright 2013 The Flutter Authors | |
| // Use of this source code is governed by a BSD-style license that can be | |
| // found in the LICENSE file. | |
| import 'package:args/command_runner.dart'; | |
| import 'package:file/file.dart'; | |
| import 'package:flutter_plugin_tools/src/remove_dev_dependencies_command.dart'; | |
| import 'package:git/git.dart'; | |
| import 'package:test/test.dart'; | |
| import 'util.dart'; | |
| void main() { | |
| late Directory packagesDir; | |
| late CommandRunner<void> runner; | |
| setUp(() { | |
| final GitDir gitDir; | |
| (:packagesDir, processRunner: _, gitProcessRunner: _, :gitDir) = configureBaseCommandMocks(); | |
| final command = RemoveDevDependenciesCommand(packagesDir, gitDir: gitDir); | |
| runner = CommandRunner<void>( | |
| 'trim_dev_dependencies_command', | |
| 'Test for trim_dev_dependencies_command', | |
| ); | |
| runner.addCommand(command); | |
| }); | |
| void addToPubspec(RepositoryPackage package, String addition) { | |
| final String originalContent = package.pubspecFile.readAsStringSync(); | |
| package.pubspecFile.writeAsStringSync(''' | |
| $originalContent | |
| $addition | |
| '''); | |
| } | |
| test('skips if nothing is removed', () async { | |
| createFakePackage('a_package', packagesDir, version: '1.0.0'); | |
| final List<String> output = await runCapturingPrint(runner, <String>[ | |
| 'remove-dev-dependencies', | |
| ]); | |
| expect(output, containsAllInOrder(<Matcher>[contains('SKIPPING: Nothing to remove.')])); | |
| }); | |
| test('removes dev_dependencies', () async { | |
| final RepositoryPackage package = createFakePackage('a_package', packagesDir, version: '1.0.0'); | |
| addToPubspec(package, ''' | |
| dev_dependencies: | |
| some_dependency: ^2.1.8 | |
| another_dependency: ^1.0.0 | |
| '''); | |
| final List<String> output = await runCapturingPrint(runner, <String>[ | |
| 'remove-dev-dependencies', | |
| ]); | |
| expect(output, containsAllInOrder(<Matcher>[contains('Removed dev_dependencies')])); | |
| expect(package.pubspecFile.readAsStringSync(), isNot(contains('some_dependency:'))); | |
| expect(package.pubspecFile.readAsStringSync(), isNot(contains('another_dependency:'))); | |
| }); | |
| test('removes from examples', () async { | |
| final RepositoryPackage package = createFakePackage('a_package', packagesDir, version: '1.0.0'); | |
| final RepositoryPackage example = package.getExamples().first; | |
| addToPubspec(example, ''' | |
| dev_dependencies: | |
| some_dependency: ^2.1.8 | |
| another_dependency: ^1.0.0 | |
| '''); | |
| final List<String> output = await runCapturingPrint(runner, <String>[ | |
| 'remove-dev-dependencies', | |
| ]); | |
| expect(output, containsAllInOrder(<Matcher>[contains('Removed dev_dependencies')])); | |
| expect(package.pubspecFile.readAsStringSync(), isNot(contains('some_dependency:'))); | |
| expect(package.pubspecFile.readAsStringSync(), isNot(contains('another_dependency:'))); | |
| }); | |
| } |