| Index: sdk/lib/_internal/pub/test/transformer/cache_test.dart
|
| diff --git a/sdk/lib/_internal/pub/test/transformer/cache_test.dart b/sdk/lib/_internal/pub/test/transformer/cache_test.dart
|
| index 270d307cd94e6029dedfdfe27ed3903857485d88..d4a51a0fae36711d9f29a37b8011f8a9d8c846e0 100644
|
| --- a/sdk/lib/_internal/pub/test/transformer/cache_test.dart
|
| +++ b/sdk/lib/_internal/pub/test/transformer/cache_test.dart
|
| @@ -4,6 +4,7 @@
|
|
|
| library pub_tests;
|
|
|
| +import 'package:scheduled_test/scheduled_stream.dart';
|
| import 'package:scheduled_test/scheduled_test.dart';
|
|
|
| import '../descriptor.dart' as d;
|
| @@ -53,6 +54,8 @@ void setUp() {
|
| d.file("transformer.dart", replaceTransformer("Goodbye", "See ya"))
|
| ])
|
| ]);
|
| +
|
| + builder.serve("baz", "1.2.3");
|
| });
|
|
|
| d.dir(appPath, [
|
| @@ -266,6 +269,60 @@ main() {
|
| process.stdout.expect("See ya!");
|
| process.shouldExit();
|
| });
|
| +
|
| + // Issue 21298.
|
| + integration("doesn't recache when a transformer is removed", () {
|
| + setUp();
|
| +
|
| + d.dir(appPath, [
|
| + d.pubspec({
|
| + "name": "myapp",
|
| + "dependencies": {
|
| + "foo": "1.2.3",
|
| + "bar": "1.2.3"
|
| + },
|
| + "transformers": ["foo", "bar"]
|
| + }),
|
| + d.dir("bin", [
|
| + d.file("myapp.dart", "main() => print('Hello!');")
|
| + ])
|
| + ]).create();
|
| +
|
| + var process = pubRun(args: ['myapp']);
|
| + process.stdout.expect("See ya!");
|
| + process.shouldExit();
|
| +
|
| + d.dir(appPath, [
|
| + d.pubspec({
|
| + "name": "myapp",
|
| + "dependencies": {
|
| + "foo": "1.2.3",
|
| + // Add a new dependency to trigger another "pub get". This works
|
| + // around issue 20498.
|
| + "baz": "1.2.3"
|
| + },
|
| + "transformers": ["foo"]
|
| + }),
|
| + d.dir("bin", [
|
| + d.file("myapp.dart", "main() => print('Hello!');")
|
| + ])
|
| + ]).create();
|
| +
|
| + process = pubRun(args: ['myapp']);
|
| + process.stdout.expect(
|
| + "Your pubspec has changed, so we need to update your lockfile:");
|
| + process.stdout.expect(consumeThrough("Goodbye!"));
|
| + process.shouldExit();
|
| +
|
| + // "bar" should still be in the manifest, since there's no reason to
|
| + // recompile the cache.
|
| + d.dir(appPath, [
|
| + d.dir(".pub/transformers", [
|
| + d.file("manifest.txt", "0.1.2+3\nbar,foo"),
|
| + d.matcherFile("transformers.snapshot", isNot(isEmpty))
|
| + ])
|
| + ]).validate();
|
| + });
|
| }
|
|
|
| String replaceTransformer(String input, String output) {
|
|
|