better exec tests
This commit is contained in:
@@ -19,25 +19,29 @@ transform.test = function (task, assert) {
|
||||
var actual = task.actual;
|
||||
var expect = task.expect;
|
||||
var opts = task.options;
|
||||
var exec = opts.exec;
|
||||
var exec = task.exec;
|
||||
|
||||
opts.filename = actual.filename;
|
||||
var getOpts = function (filename) {
|
||||
return _.merge({ filename: filename }, opts);
|
||||
};
|
||||
|
||||
var actualCode = actual.code.trim();
|
||||
var execCode = exec.code.trim();
|
||||
var result;
|
||||
|
||||
var actualResult = transform(actualCode, opts);
|
||||
var actualAst = actualResult.ast;
|
||||
actualCode = recast.prettyPrint(actualAst).code;
|
||||
if (execCode) {
|
||||
result = transform(execCode, getOpts(exec.filename));
|
||||
execCode = result.code;
|
||||
|
||||
if (exec) {
|
||||
require("./polyfill");
|
||||
var fn = new Function("assert", actualCode);
|
||||
var fn = new Function("assert", execCode);
|
||||
fn(assert);
|
||||
}
|
||||
} else {
|
||||
var actualCode = actual.code.trim();
|
||||
var expectCode = expect.code.trim();
|
||||
|
||||
var expectCode = expect.code.trim();
|
||||
result = transform(actualCode, getOpts(actual.filename));
|
||||
actualCode = recast.prettyPrint(result.ast).code;
|
||||
|
||||
if (!exec || (exec && expectCode)) {
|
||||
var expectAst = util.parse(expect, expectCode);
|
||||
var expectResult = recast.prettyPrint(expectAst);
|
||||
expectCode = expectResult.code;
|
||||
@@ -46,11 +50,11 @@ transform.test = function (task, assert) {
|
||||
}
|
||||
|
||||
if (task.sourceMap) {
|
||||
assert.deepEqual(task.sourceMap, actualResult.map);
|
||||
assert.deepEqual(task.sourceMap, result.map);
|
||||
}
|
||||
|
||||
if (task.sourceMappings) {
|
||||
var consumer = new sourceMap.SourceMapConsumer(actualResult.map);
|
||||
var consumer = new sourceMap.SourceMapConsumer(result.map);
|
||||
|
||||
_.each(task.sourceMappings, function (mapping, i) {
|
||||
var pos = consumer.originalPositionFor(mapping.generated);
|
||||
|
||||
Reference in New Issue
Block a user