| // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file | |
| // for details. All rights reserved. Use of this source code is governed by a | |
| // BSD-style license that can be found in the LICENSE file. | |
| @TestOn('vm') | |
| library; | |
| import 'dart:io'; | |
| import 'package:pub/src/exit_codes.dart' as exit_codes; | |
| import 'package:pub/src/exit_codes.dart'; | |
| import 'package:pub/src/path.dart'; | |
| import 'package:test/test.dart'; | |
| import '../descriptor.dart' as d; | |
| import '../test_pub.dart'; | |
| final dotExample = p.join('.', 'example'); | |
| void main() { | |
| forBothPubGetAndUpgrade((command) { | |
| test( | |
| 'pub ${command.name} --example also retrieves dependencies in example/', | |
| () async { | |
| await d.dir(appPath, [ | |
| d.appPubspec(), | |
| d.dir('example', [ | |
| d.pubspec({ | |
| 'name': 'app_example', | |
| 'dependencies': { | |
| 'myapp': {'path': '..'}, | |
| }, | |
| }), | |
| ]), | |
| ]).create(); | |
| await pubCommand(command, args: ['--no-example']); | |
| final lockFile = File(p.join(d.sandbox, appPath, 'pubspec.lock')); | |
| final exampleLockFile = File( | |
| p.join(d.sandbox, appPath, 'example', 'pubspec.lock'), | |
| ); | |
| expect(lockFile.existsSync(), true); | |
| expect(exampleLockFile.existsSync(), false); | |
| await pubCommand( | |
| command, | |
| args: ['--example'], | |
| output: | |
| command.name == 'get' | |
| ? ''' | |
| Resolving dependencies... | |
| Downloading packages... | |
| Got dependencies! | |
| Resolving dependencies in `$dotExample`... | |
| Downloading packages... | |
| Got dependencies in `$dotExample`.''' | |
| : ''' | |
| Resolving dependencies... | |
| Downloading packages... | |
| No dependencies changed. | |
| Resolving dependencies in `$dotExample`... | |
| Downloading packages... | |
| Got dependencies in `$dotExample`.''', | |
| ); | |
| expect(lockFile.existsSync(), true); | |
| expect(exampleLockFile.existsSync(), true); | |
| }, | |
| ); | |
| test('Failures are not summarized', () async { | |
| await d.dir(appPath, [ | |
| d.appPubspec(), | |
| d.dir('example', [ | |
| d.pubspec({ | |
| 'name': 'broken name', | |
| 'dependencies': { | |
| 'myapp': {'path': '..'}, | |
| }, | |
| }), | |
| ]), | |
| ]).create(); | |
| await pubGet( | |
| args: ['--example'], | |
| error: contains( | |
| 'Error on line 1, column 9 of example${p.separator}pubspec.yaml', | |
| ), | |
| exitCode: DATA, | |
| ); | |
| await pubGet( | |
| args: ['--directory', dotExample], | |
| error: contains( | |
| 'Error on line 1, column 9 of example${p.separator}pubspec.yaml', | |
| ), | |
| exitCode: exit_codes.DATA, | |
| ); | |
| }); | |
| }); | |
| } |