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

View File

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

View File

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