Index: sdk/lib/_internal/pub_generated/test/build/outputs_error_to_json_test.dart |
diff --git a/sdk/lib/_internal/pub_generated/test/build/outputs_error_to_json_test.dart b/sdk/lib/_internal/pub_generated/test/build/outputs_error_to_json_test.dart |
new file mode 100644 |
index 0000000000000000000000000000000000000000..b1a894ff37ace19ae51645a2e7eea2463d355124 |
--- /dev/null |
+++ b/sdk/lib/_internal/pub_generated/test/build/outputs_error_to_json_test.dart |
@@ -0,0 +1,41 @@ |
+library pub_tests; |
+import 'package:scheduled_test/scheduled_test.dart'; |
+import '../../lib/src/exit_codes.dart' as exit_codes; |
+import '../descriptor.dart' as d; |
+import '../test_pub.dart'; |
+const TRANSFORMER = """ |
+import 'dart:async'; |
+ |
+import 'package:barback/barback.dart'; |
+ |
+class RewriteTransformer extends Transformer { |
+ RewriteTransformer.asPlugin(); |
+ |
+ String get allowedExtensions => '.txt'; |
+ |
+ Future apply(Transform transform) => throw new Exception('oh no!'); |
+} |
+"""; |
+main() { |
+ initConfig(); |
+ withBarbackVersions("any", () { |
+ integration("outputs error to JSON in a failed build", () { |
+ currentSchedule.timeout *= 2; |
+ d.dir(appPath, [d.pubspec({ |
+ "name": "myapp", |
+ "transformers": ["myapp"] |
+ }), |
+ d.dir("lib", [d.file("transformer.dart", TRANSFORMER)]), |
+ d.dir("web", [d.file("foo.txt", "foo")])]).create(); |
+ createLockFile('myapp', pkg: ['barback']); |
+ schedulePub(args: ["build", "--format", "json"], outputJson: { |
+ "buildResult": "failure", |
+ "errors": [{ |
+ "error": startsWith( |
+ "Transform Rewrite on myapp|web/foo.txt " "threw error: oh no!") |
+ }], |
+ "log": [] |
+ }, exitCode: exit_codes.DATA); |
+ }); |
+ }); |
+} |