better traceur test api

This commit is contained in:
Sebastian McKenzie 2015-01-05 01:06:16 +11:00
parent 6420954c53
commit a3b30bae7a
3 changed files with 18 additions and 12 deletions

View File

@ -47,7 +47,7 @@ exports.get = function (entryName) {
function push(taskName, taskDir) {
// tracuer error tests
if (taskName.indexOf("Error_") === 0) return;
if (taskName.indexOf("Error_") >= 0) return;
var actualLocAlias = suiteName + "/" + taskName + "/actual.js";
var expectLocAlias = suiteName + "/" + taskName + "/expected.js";
@ -97,12 +97,12 @@ exports.get = function (entryName) {
// traceur checks
var shouldSkip = function (code) {
return code.indexOf("// Error:") === 0 || code.indexOf("// Skip.") === 0;
return code.indexOf("// Error:") >= 0 || code.indexOf("// Skip.") >= 0;
};
if (shouldSkip(test.actual.code) || shouldSkip(test.exec.code)) {
return;
} else if (test.exec.code.indexOf("// Async.")) {
} else if (test.exec.code.indexOf("// Async.") >= 0) {
//test.options.asyncExec = true;
}

View File

@ -40,16 +40,18 @@ var run = function (task, done) {
execCode = result.code;
try {
var requireRelative;
if (opts.emulateNodeModule) {
var mod = new Module(exec.loc);
requireRelative = function (loc) {
return mod.require(loc);
};
}
var fakeRequire = function (loc) {
if (loc === "../../../src/runtime/polyfills/Number.js") {
return Number;
} else if (loc === "../../../src/runtime/polyfills/Math.js") {
return Math;
} else {
return require(path.resolve(exec.loc, "..", loc));
}
};
var fn = new Function("require", "done", execCode);
fn(requireRelative, chai.assert, done);
fn.call(global, fakeRequire, chai.assert, done);
} catch (err) {
err.message = exec.loc + ": " + err.message;
err.message += util.codeFrame(execCode);
@ -83,6 +85,10 @@ var run = function (task, done) {
};
module.exports = function (name, opts) {
if (opts && opts.requireHook) {
require("6to5/register")(opts);
}
_.each(helper.get(name), function (testSuite) {
suite(name + "/" + testSuite.title, function () {
_.each(testSuite.tests, function (task) {

View File

@ -1,5 +1,5 @@
require("./_transformation-helper")("traceur", {
blacklist: ["useStrict"],
emulateNodeModule: true,
requireHook: true,
experimental: true
});