blob: 1be24873e3ee88b2efadb25ba8e5c2f71bb70ac4 [file] [log] [blame]
// Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file
// 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 '../descriptor.dart' as d;
import '../test_pub.dart';
import '../serve/utils.dart';
const TRANSFORMER = """
import 'dart:async';
import 'package:barback/barback.dart';
class BrokenTransformer extends Transformer {
RewriteTransformer.asPlugin() {
throw 'This transformer is broken!';
}
String get allowedExtensions => '.txt';
void apply(Transform transform) {}
}
""";
main() {
initConfig();
withBarbackVersions("any", () {
integration("doesn't load an unnecessary transformer", () {
d.dir(appPath, [
d.pubspec({
"name": "myapp",
"transformers": [
{"myapp/src/transformer": {r"$include": "lib/myapp.dart"}}
]
}),
d.dir("lib", [
d.file("myapp.dart", ""),
d.dir("src", [d.file("transformer.dart", TRANSFORMER)])
]),
d.dir("bin", [
d.file("hi.dart", "void main() => print('Hello!');")
])
]).create();
createLockFile('myapp', pkg: ['barback']);
// This shouldn't load the transformer, since it doesn't transform
// anything that the entrypoint imports. If it did load the transformer,
// we'd know since it would throw an exception.
var pub = pubRun(args: ["bin/hi"]);
pub.stdout.expect("Hello!");
pub.shouldExit();
});
});
}