blob: a99ec1dde4547655f03cafbef2b58795d6425a20 [file] [log] [blame]
// Copyright (c) 2017, 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.
@Skip()
import 'package:test/test.dart';
import '../../test_pub.dart';
main() {
test('enables default-on features by default', () async {
await servePackages((builder) {
builder.serve("foo", "1.0.0", pubspec: {
"features": {
"stuff": {
"dependencies": {"bar": "1.0.0"}
},
"things": {
"default": false,
"dependencies": {"baz": "1.0.0"}
}
}
});
builder.serve("bar", "1.0.0");
builder.serve("baz", "1.0.0");
});
await runPub(args: ["global", "activate", "foo"], output: contains("""
Resolving dependencies...
+ bar 1.0.0
+ foo 1.0.0
Downloading"""));
});
test('can enable default-off features', () async {
await servePackages((builder) {
builder.serve("foo", "1.0.0", pubspec: {
"features": {
"stuff": {
"dependencies": {"bar": "1.0.0"}
},
"things": {
"default": false,
"dependencies": {"baz": "1.0.0"}
}
}
});
builder.serve("bar", "1.0.0");
builder.serve("baz", "1.0.0");
});
await runPub(
args: ["global", "activate", "foo", "--features", "things"],
output: contains("""
Resolving dependencies...
+ bar 1.0.0
+ baz 1.0.0
+ foo 1.0.0
Downloading"""));
});
test('can disable default-on features', () async {
await servePackages((builder) {
builder.serve("foo", "1.0.0", pubspec: {
"features": {
"stuff": {
"dependencies": {"bar": "1.0.0"}
},
"things": {
"default": false,
"dependencies": {"baz": "1.0.0"}
}
}
});
builder.serve("bar", "1.0.0");
builder.serve("baz", "1.0.0");
});
await runPub(
args: ["global", "activate", "foo", "--omit-features", "stuff"],
output: contains("""
Resolving dependencies...
+ foo 1.0.0
Downloading"""));
});
test('supports multiple arguments', () async {
await servePackages((builder) {
builder.serve("foo", "1.0.0", pubspec: {
"features": {
"stuff": {
"default": false,
"dependencies": {"bar": "1.0.0"}
},
"things": {
"default": false,
"dependencies": {"baz": "1.0.0"}
}
}
});
builder.serve("bar", "1.0.0");
builder.serve("baz", "1.0.0");
});
await runPub(
args: ["global", "activate", "foo", "--features", "things,stuff"],
output: contains("""
Resolving dependencies...
+ bar 1.0.0
+ baz 1.0.0
+ foo 1.0.0
Downloading"""));
});
test('can both enable and disable', () async {
await servePackages((builder) {
builder.serve("foo", "1.0.0", pubspec: {
"features": {
"stuff": {
"dependencies": {"bar": "1.0.0"}
},
"things": {
"default": false,
"dependencies": {"baz": "1.0.0"}
}
}
});
builder.serve("bar", "1.0.0");
builder.serve("baz", "1.0.0");
});
await runPub(args: [
"global",
"activate",
"foo",
"--features",
"things",
"--omit-features",
"stuff"
], output: contains("""
Resolving dependencies...
+ baz 1.0.0
+ foo 1.0.0
Downloading"""));
});
}