better exec tests

This commit is contained in:
Sebastian McKenzie
2014-10-15 14:28:51 +11:00
parent bd487fa187
commit 4ea9b9c028
34 changed files with 23 additions and 19 deletions

View File

@@ -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);