blob: c76f758060798f6dd1e6ca453d350cc71d2903c6 [file] [log] [blame]
// Copyright (c) 2013, 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.
import 'package:path/path.dart' as p;
import 'package:test/test.dart';
import 'descriptor.dart' as d;
import 'test_pub.dart';
main() {
setUp(() async {
await servePackages((builder) {
builder.serve("normal", "1.2.3",
deps: {"transitive": "any", "circular_a": "any"});
builder.serve("transitive", "1.2.3", deps: {"shared": "any"});
builder.serve("shared", "1.2.3", deps: {"other": "any"});
builder.serve("dev_only", "1.2.3");
builder.serve("unittest", "1.2.3",
deps: {"shared": "any", "dev_only": "any"});
builder.serve("other", "1.0.0", deps: {"myapp": "any"});
builder.serve("overridden", "1.0.0");
builder.serve("overridden", "2.0.0");
builder.serve("override_only", "1.2.3");
builder.serve("circular_a", "1.2.3", deps: {"circular_b": "any"});
builder.serve("circular_b", "1.2.3", deps: {"circular_a": "any"});
});
await d.dir("from_path",
[d.libDir("from_path"), d.libPubspec("from_path", "1.2.3")]).create();
await d.dir(appPath, [
d.pubspec({
"name": "myapp",
"dependencies": {
"normal": "any",
"overridden": "1.0.0",
"from_path": {"path": "../from_path"}
},
"dev_dependencies": {"unittest": "any"},
"dependency_overrides": {"overridden": "2.0.0", "override_only": "any"}
})
]).create();
});
group("lists all dependencies", () {
test("in compact form", () async {
await pubGet();
await runPub(args: ['deps', '-s', 'compact'], output: '''
Dart SDK 0.1.2+3
myapp 0.0.0
dependencies:
- from_path 1.2.3
- normal 1.2.3 [transitive circular_a]
- overridden 2.0.0
dev dependencies:
- unittest 1.2.3 [shared dev_only]
dependency overrides:
- overridden 2.0.0
- override_only 1.2.3
transitive dependencies:
- circular_a 1.2.3 [circular_b]
- circular_b 1.2.3 [circular_a]
- dev_only 1.2.3
- other 1.0.0 [myapp]
- shared 1.2.3 [other]
- transitive 1.2.3 [shared]
''');
});
test("in list form", () async {
await pubGet();
await runPub(args: ['deps', '--style', 'list'], output: '''
Dart SDK 0.1.2+3
myapp 0.0.0
dependencies:
- from_path 1.2.3
- normal 1.2.3
- transitive any
- circular_a any
- overridden 2.0.0
dev dependencies:
- unittest 1.2.3
- shared any
- dev_only any
dependency overrides:
- overridden 2.0.0
- override_only 1.2.3
transitive dependencies:
- circular_a 1.2.3
- circular_b any
- circular_b 1.2.3
- circular_a any
- dev_only 1.2.3
- other 1.0.0
- myapp any
- shared 1.2.3
- other any
- transitive 1.2.3
- shared any
''');
});
test("in tree form", () async {
await pubGet();
await runPub(args: ['deps'], output: '''
Dart SDK 0.1.2+3
myapp 0.0.0
|-- from_path 1.2.3
|-- normal 1.2.3
| |-- circular_a 1.2.3
| | '-- circular_b 1.2.3
| | '-- circular_a...
| '-- transitive 1.2.3
| '-- shared...
|-- overridden 2.0.0
|-- override_only 1.2.3
'-- unittest 1.2.3
|-- dev_only 1.2.3
'-- shared 1.2.3
'-- other 1.0.0
'-- myapp...
''');
});
test("with the Flutter SDK, if applicable", () async {
await pubGet();
await d.dir('flutter', [d.file('version', '4.3.2+1')]).create();
await runPub(
args: ['deps'],
output: contains('Flutter SDK 4.3.2+1'),
environment: {"FLUTTER_ROOT": p.join(d.sandbox, 'flutter')});
});
test("with the Fuchsia SDK, if applicable", () async {
await pubGet();
await d.dir('fuchsia', [d.file('version', '4.3.2+1')]).create();
await runPub(
args: ['deps'],
output: contains('Fuchsia SDK 4.3.2+1'),
environment: {"FUCHSIA_DART_SDK_ROOT": p.join(d.sandbox, 'fuchsia')});
});
});
group("lists non-dev dependencies", () {
test("in compact form", () async {
await pubGet();
await runPub(args: ['deps', '-s', 'compact', '--no-dev'], output: '''
Dart SDK 0.1.2+3
myapp 0.0.0
dependencies:
- from_path 1.2.3
- normal 1.2.3 [transitive circular_a]
- overridden 2.0.0
dependency overrides:
- overridden 2.0.0
- override_only 1.2.3
transitive dependencies:
- circular_a 1.2.3 [circular_b]
- circular_b 1.2.3 [circular_a]
- other 1.0.0 [myapp]
- shared 1.2.3 [other]
- transitive 1.2.3 [shared]
''');
});
test("in list form", () async {
await pubGet();
await runPub(args: ['deps', '--style', 'list', '--no-dev'], output: '''
Dart SDK 0.1.2+3
myapp 0.0.0
dependencies:
- from_path 1.2.3
- normal 1.2.3
- transitive any
- circular_a any
- overridden 2.0.0
dependency overrides:
- overridden 2.0.0
- override_only 1.2.3
transitive dependencies:
- circular_a 1.2.3
- circular_b any
- circular_b 1.2.3
- circular_a any
- other 1.0.0
- myapp any
- shared 1.2.3
- other any
- transitive 1.2.3
- shared any
''');
});
test("in tree form", () async {
await pubGet();
await runPub(args: ['deps', '--no-dev'], output: '''
Dart SDK 0.1.2+3
myapp 0.0.0
|-- from_path 1.2.3
|-- normal 1.2.3
| |-- circular_a 1.2.3
| | '-- circular_b 1.2.3
| | '-- circular_a...
| '-- transitive 1.2.3
| '-- shared 1.2.3
| '-- other 1.0.0
| '-- myapp...
|-- overridden 2.0.0
'-- override_only 1.2.3
''');
});
});
}