Chromium Code Reviews| Index: test/get/cache_transformed_dependency_test.dart |
| diff --git a/test/get/cache_transformed_dependency_test.dart b/test/get/cache_transformed_dependency_test.dart |
| index a1ab8c440d90e361e319a8ca067866f91413f02f..d96e3c106f5f107558119ed177e34b0532bd0277 100644 |
| --- a/test/get/cache_transformed_dependency_test.dart |
| +++ b/test/get/cache_transformed_dependency_test.dart |
| @@ -2,6 +2,7 @@ |
| // 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 '../descriptor.dart' as d; |
| @@ -417,6 +418,113 @@ main() { |
| d.nothing(".pub/deps/debug/foo") |
| ]).validate(); |
| }); |
| + |
| + group("with --no-precompile", () { |
| + integration("doesn't cache a transformed dependency", () { |
| + servePackages((builder) { |
| + builder.serveRealPackage('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.appDir({"foo": "1.2.3"}).create(); |
| + |
| + pubGet(args: ["--no-precompile"], output: isNot(contains("Precompiled"))); |
| + |
| + d.nothing(p.join(appPath, ".pub")).validate(); |
| + }); |
| + |
| + integration("deletes the cache when the dependency is updated", () { |
| + servePackages((builder) { |
| + builder.serveRealPackage('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!';") |
| + ]) |
| + ]); |
| + |
| + builder.serve("foo", "1.2.4", |
| + deps: {'barback': 'any'}, |
| + pubspec: {'transformers': ['foo']}, |
| + contents: [ |
| + d.dir("lib", [ |
| + d.file("transformer.dart", replaceTransformer("Hello", "See ya")), |
| + d.file("foo.dart", "final message = 'Hello!';") |
| + ]) |
| + ]); |
| + }); |
| + |
| + d.appDir({"foo": "1.2.3"}).create(); |
| + |
| + pubGet(output: contains("Precompiled foo.")); |
| + |
| + d.dir(appPath, [ |
| + d.dir(".pub/deps/debug/foo/lib", [ |
| + d.file("foo.dart", "final message = 'Goodbye!';") |
| + ]) |
| + ]).validate(); |
| + |
| + // Upgrade to the new version of foo. |
| + d.appDir({"foo": "1.2.4"}).create(); |
| + |
| + pubGet(args: ["--no-precompile"], output: isNot(contains("Precompiled"))); |
| + |
| + d.nothing(p.join(appPath, ".pub/deps/debug/foo")).validate(); |
| + }); |
| + |
| + integration("doesn't delete a cache when an unrelated dependency is updated", |
|
Bob Nystrom
2016/03/17 20:05:06
Long line.
nweiz
2016/03/17 20:09:56
Done.
|
| + () { |
| + servePackages((builder) { |
| + builder.serveRealPackage('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!';") |
| + ]) |
| + ]); |
| + |
| + builder.serve("bar", "5.6.7"); |
| + }); |
| + |
| + d.appDir({"foo": "1.2.3"}).create(); |
| + pubGet(output: contains("Precompiled foo.")); |
| + |
| + |
| + d.dir(appPath, [ |
| + d.dir(".pub/deps/debug/foo/lib", [ |
| + d.file("foo.dart", "final message = 'Goodbye!';") |
| + ]) |
| + ]).validate(); |
| + |
| + globalPackageServer.add((builder) => builder.serve("bar", "6.0.0")); |
| + pubUpgrade( |
| + args: ["--no-precompile"], |
| + output: isNot(contains("Precompiled"))); |
| + |
| + d.dir(appPath, [ |
| + d.dir(".pub/deps/debug/foo/lib", [ |
| + d.file("foo.dart", "final message = 'Goodbye!';") |
| + ]) |
| + ]).validate(); |
| + }); |
| + }); |
| } |
| String replaceTransformer(String input, String output) { |