Index: sdk/lib/_internal/pub/test/global/binstubs/removes_even_if_not_in_pubspec_test.dart |
diff --git a/sdk/lib/_internal/pub/test/global/run/missing_path_package_test.dart b/sdk/lib/_internal/pub/test/global/binstubs/removes_even_if_not_in_pubspec_test.dart |
similarity index 52% |
copy from sdk/lib/_internal/pub/test/global/run/missing_path_package_test.dart |
copy to sdk/lib/_internal/pub/test/global/binstubs/removes_even_if_not_in_pubspec_test.dart |
index a8be8c81617c018cbd40b451ccd877e85ec0e810..03cd2f74802fb2cb51152b64353851a043c44d4b 100644 |
--- a/sdk/lib/_internal/pub/test/global/run/missing_path_package_test.dart |
+++ b/sdk/lib/_internal/pub/test/global/binstubs/removes_even_if_not_in_pubspec_test.dart |
@@ -2,30 +2,44 @@ |
// 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:scheduled_test/scheduled_test.dart'; |
-import '../../../lib/src/io.dart'; |
import '../../descriptor.dart' as d; |
import '../../test_pub.dart'; |
main() { |
initConfig(); |
- integration('errors if the local package does not exist', () { |
+ integration("removes all binstubs for package", () { |
d.dir("foo", [ |
- d.libPubspec("foo", "1.0.0"), |
+ d.pubspec({ |
+ "name": "foo", |
+ "executables": { |
+ "foo": null |
+ } |
+ }), |
d.dir("bin", [ |
d.file("foo.dart", "main() => print('ok');") |
]) |
]).create(); |
+ // Create the binstub for foo. |
schedulePub(args: ["global", "activate", "--source", "path", "../foo"]); |
- schedule(() => deleteEntry(p.join(sandboxDir, "foo"))); |
+ // Remove it from the pubspec. |
+ d.dir("foo", [ |
+ d.pubspec({ |
+ "name": "foo" |
+ }) |
+ ]).create(); |
+ |
+ // Deactivate. |
+ schedulePub(args: ["global", "deactivate", "foo"]); |
- var pub = pubRun(global: true, args: ["foo"]); |
- var path = canonicalize(p.join(sandboxDir, "foo")); |
- pub.stderr.expect('Could not find a file named "pubspec.yaml" in "$path".'); |
- pub.shouldExit(1); |
+ // It should still be deleted. |
+ d.dir(cachePath, [ |
+ d.dir("bin", [ |
+ d.nothing("foo") |
+ ]) |
+ ]).validate(); |
}); |
} |