Index: sdk/lib/_internal/pub/test/get/cache_transformed_dependency_test.dart |
diff --git a/sdk/lib/_internal/pub/test/get/cache_transformed_dependency_test.dart b/sdk/lib/_internal/pub/test/get/cache_transformed_dependency_test.dart |
index 86c3baa4b94f2e06d8a37d2922a9e0ba8168f62e..f3769eed49862342b5d090a3d53830a179609fbf 100644 |
--- a/sdk/lib/_internal/pub/test/get/cache_transformed_dependency_test.dart |
+++ b/sdk/lib/_internal/pub/test/get/cache_transformed_dependency_test.dart |
@@ -237,44 +237,83 @@ main() { |
]).validate(); |
}); |
- // TODO(nweiz): Implement this. |
- // integration("loads code from the cache", () { |
- // servePackages((builder) { |
- // builder.serveRepoPackage('barback'); |
- // |
- // builder.serve("foo", "1.2.3", |
- // deps: {'barback': 'any'}, |
- // pubspec: {'transformers': ['foo']}, |
- // contents: [ |
- // d.dir("lib", [ |
- // d.file("transformer.dart", replaceTransformer("Hello", "Goodbye")), |
- // d.file("foo.dart", "final message = 'Hello!';") |
- // ]) |
- // ]); |
- // }); |
- // |
- // d.dir(appPath, [ |
- // d.appPubspec({"foo": "1.2.3"}), |
- // d.dir('bin', [ |
- // d.file('script.dart', """ |
- // import 'package:foo/foo.dart'; |
- // |
- // void main() => print(message);""") |
- // ]) |
- // ]).create(); |
- // |
- // pubGet(output: contains("Precompiled foo.")); |
- // |
- // d.dir(appPath, [ |
- // d.dir(".pub/deps/debug/foo/lib", [ |
- // d.file("foo.dart", "final message = 'Modified!';") |
- // ]) |
- // ]).create(); |
- // |
- // var pub = pubRun(args: ["script"]); |
- // pub.stdout.expect("Modified!"); |
- // pub.shouldExit(); |
- // }); |
+ integration("loads code from the cache", () { |
+ servePackages((builder) { |
+ builder.serveRepoPackage('barback'); |
+ |
+ builder.serve("foo", "1.2.3", |
+ deps: {'barback': 'any'}, |
+ pubspec: {'transformers': ['foo']}, |
+ contents: [ |
+ d.dir("lib", [ |
+ d.file("transformer.dart", replaceTransformer("Hello", "Goodbye")), |
+ d.file("foo.dart", "final message = 'Hello!';") |
+ ]) |
+ ]); |
+ }); |
+ |
+ d.dir(appPath, [ |
+ d.appPubspec({"foo": "1.2.3"}), |
+ d.dir('bin', [ |
+ d.file('script.dart', """ |
+ import 'package:foo/foo.dart'; |
+ |
+ void main() => print(message);""") |
+ ]) |
+ ]).create(); |
+ |
+ pubGet(output: contains("Precompiled foo.")); |
+ |
+ d.dir(appPath, [ |
+ d.dir(".pub/deps/debug/foo/lib", [ |
+ d.file("foo.dart", "final message = 'Modified!';") |
+ ]) |
+ ]).create(); |
+ |
+ var pub = pubRun(args: ["script"]); |
+ pub.stdout.expect("Modified!"); |
+ pub.shouldExit(); |
+ }); |
+ |
+ integration("doesn't re-transform code loaded from the cache", () { |
+ servePackages((builder) { |
+ builder.serveRepoPackage('barback'); |
+ |
+ builder.serve("foo", "1.2.3", |
+ deps: {'barback': 'any'}, |
+ pubspec: {'transformers': ['foo']}, |
+ contents: [ |
+ d.dir("lib", [ |
+ d.file("transformer.dart", replaceTransformer("Hello", "Goodbye")), |
+ d.file("foo.dart", "final message = 'Hello!';") |
+ ]) |
+ ]); |
+ }); |
+ |
+ d.dir(appPath, [ |
+ d.appPubspec({"foo": "1.2.3"}), |
+ d.dir('bin', [ |
+ d.file('script.dart', """ |
+ import 'package:foo/foo.dart'; |
+ |
+ void main() => print(message);""") |
+ ]) |
+ ]).create(); |
+ |
+ pubGet(output: contains("Precompiled foo.")); |
+ |
+ // Manually reset the cache to its original state to prove that the |
+ // transformer won't be run again on it. |
+ d.dir(appPath, [ |
+ d.dir(".pub/deps/debug/foo/lib", [ |
+ d.file("foo.dart", "final message = 'Hello!';") |
+ ]) |
+ ]).create(); |
+ |
+ var pub = pubRun(args: ["script"]); |
+ pub.stdout.expect("Hello!"); |
+ pub.shouldExit(); |
+ }); |
} |
String replaceTransformer(String input, String output) { |