change behaviour of tests and browser testing/build
This commit is contained in:
@@ -1,3 +1,6 @@
|
||||
var transform = require("./transform");
|
||||
Error.captureStackTrace = Error.captureStackTrace || function (obj) {
|
||||
obj.stack = [{ toString: null }];
|
||||
};
|
||||
|
||||
module.exports = transform;
|
||||
exports.generate = require("./generator");
|
||||
exports.transform = require("./transform");
|
||||
|
||||
@@ -1,10 +1,11 @@
|
||||
module.exports = transform;
|
||||
|
||||
var Transformer = require("./transformer");
|
||||
var sourceMap = require("source-map");
|
||||
var generate = require("./generator");
|
||||
var assert = require("assert");
|
||||
var File = require("./file");
|
||||
var util = require("./util");
|
||||
var chai = require("chai");
|
||||
var _ = require("lodash");
|
||||
|
||||
function transform(code, opts) {
|
||||
@@ -15,66 +16,6 @@ function transform(code, opts) {
|
||||
return file.parse(code);
|
||||
}
|
||||
|
||||
transform.test = function (task, assert) {
|
||||
var actual = task.actual;
|
||||
var expect = task.expect;
|
||||
var opts = task.options;
|
||||
var exec = task.exec;
|
||||
|
||||
var getOpts = function (filename) {
|
||||
return _.merge({
|
||||
whtiespace: true,
|
||||
filename: filename
|
||||
}, opts);
|
||||
};
|
||||
|
||||
var execCode = exec.code.trim();
|
||||
var result;
|
||||
|
||||
if (execCode) {
|
||||
result = transform(execCode, getOpts(exec.filename));
|
||||
execCode = result.code;
|
||||
|
||||
require("./polyfill");
|
||||
|
||||
try {
|
||||
var fn = new Function("assert", execCode);
|
||||
fn(assert);
|
||||
} catch (err) {
|
||||
err.message += util.codeFrame(execCode);
|
||||
throw err;
|
||||
}
|
||||
} else {
|
||||
var actualCode = actual.code.trim();
|
||||
var expectCode = expect.code.trim();
|
||||
|
||||
result = transform(actualCode, getOpts(actual.filename));
|
||||
actualCode = result.code;
|
||||
|
||||
try {
|
||||
assert.equal(actualCode, expectCode);
|
||||
} catch (err) {
|
||||
err.showDiff = true;
|
||||
throw err;
|
||||
}
|
||||
}
|
||||
|
||||
if (task.sourceMap) {
|
||||
assert.deepEqual(task.sourceMap, result.map);
|
||||
}
|
||||
|
||||
if (task.sourceMappings) {
|
||||
var consumer = new sourceMap.SourceMapConsumer(result.map);
|
||||
|
||||
_.each(task.sourceMappings, function (mapping, i) {
|
||||
var expect = mapping.original;
|
||||
|
||||
var actual = consumer.originalPositionFor(mapping.generated);
|
||||
assert.equal(actual.line + ":" + actual.column, expect.line + ":" + expect.column);
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
transform._ensureTransformerNames = function (type, keys) {
|
||||
_.each(keys, function (key) {
|
||||
if (!_.has(transform.transformers, key)) {
|
||||
|
||||
Reference in New Issue
Block a user