fix running mode tests from different directory

This commit is contained in:
nightwing 2012-09-04 20:35:21 +04:00
commit 25eeca0a75

View file

@ -4,11 +4,13 @@ if (!fs.existsSync)
require("amd-loader"); require("amd-loader");
var cwd = __dirname + "/";
function generateTestData() { function generateTestData() {
var root = Array(5).join("../") + "/demo/kitchen-sink/docs"; var root = Array(5).join("../") + "/demo/kitchen-sink/docs";
var docs = fs.readdirSync(root); var docs = fs.readdirSync(cwd + root);
var specialDocs = fs.readdirSync("."); var specialDocs = fs.readdirSync(cwd);
var modes = fs.readdirSync("../").filter(function(x){ var modes = fs.readdirSync(cwd + "../").filter(function(x){
return /^\w+_highlight_rules.js$/.test(x); return /^\w+_highlight_rules.js$/.test(x);
}).map(function(x) { }).map(function(x) {
return x.replace(/_highlight_rules.js$/, ""); return x.replace(/_highlight_rules.js$/, "");
@ -17,7 +19,7 @@ function generateTestData() {
console.log("Docs:", docs.join()); console.log("Docs:", docs.join());
console.log("Modes:", modes); console.log("Modes:", modes);
docs.forEach(function(docName){ docs.forEach(function(docName) {
var p = docName.toLowerCase().split("."); var p = docName.toLowerCase().split(".");
var modeName; var modeName;
if (modes.indexOf(p[0]) != -1) if (modes.indexOf(p[0]) != -1)
@ -32,7 +34,7 @@ function generateTestData() {
filePath = root + "/" + docName; filePath = root + "/" + docName;
} }
var text = fs.readFileSync(filePath, "utf8"); var text = fs.readFileSync(cwd + filePath, "utf8");
var Mode = require("../" + modeName).Mode; var Mode = require("../" + modeName).Mode;
var tokenizer = new Mode().getTokenizer(); var tokenizer = new Mode().getTokenizer();
@ -48,22 +50,22 @@ function generateTestData() {
}; };
}); });
fs.writeFileSync("tokens_" + modeName + ".json", JSON.stringify(data, null, 1), "utf8"); fs.writeFileSync(cwd + "tokens_" + modeName + ".json", JSON.stringify(data, null, 1), "utf8");
}); });
} }
function test(startAt) { function test(startAt) {
var docs = fs.readdirSync(".").filter(function(x){ var docs = fs.readdirSync(cwd).filter(function(x) {
return /^tokens_\w+.json$/.test(x); return /^tokens_\w+.json$/.test(x);
}); });
if (startAt && startAt > 1) if (startAt && startAt > 1)
docs = docs.slice(startAt - 1); docs = docs.slice(startAt - 1);
docs.forEach(function(x, i){ docs.forEach(function(x, i) {
var modeName = x.match(/tokens_(.*).json/)[1]; var modeName = x.match(/tokens_(.*).json/)[1];
console.log(padNumber(i+1, 3) + ") testing: \u001b[33m" + modeName + "\u001b[0m"); console.log(padNumber(i+1, 3) + ") testing: \u001b[33m" + modeName + "\u001b[0m");
var text = fs.readFileSync("./" + x, "utf8"); var text = fs.readFileSync(cwd + x, "utf8");
var data = JSON.parse(text); var data = JSON.parse(text);
var Mode = require("../" + modeName).Mode; var Mode = require("../" + modeName).Mode;
var tokenizer = new Mode().getTokenizer(); var tokenizer = new Mode().getTokenizer();