TiddlyWiki5/wikitest.js

54 wiersze
1.7 KiB
JavaScript
Czysty Zwykły widok Historia

/*
Wikifier test rig
2011-12-07 13:18:07 +00:00
Usage:
node wikitest.js <testdirectory>
This command creates a store and loads up all the `*.tid` files in the test directory. Then it wikifies each tiddler in turn,
verifying that the output matches `<tiddlername>.html` and `<tiddlername>.txt`.
*/
/*jslint node: true */
"use strict";
var Tiddler = require("./js/Tiddler.js").Tiddler,
WikiStore = require("./js/WikiStore.js").WikiStore,
2011-12-07 13:18:07 +00:00
tiddlerInput = require("./js/TiddlerInput"),
utils = require("./js/Utils.js"),
2011-12-07 13:18:07 +00:00
util = require("util"),
fs = require("fs"),
path = require("path");
2011-12-07 13:18:07 +00:00
var testdirectory = process.argv[2],
store = new WikiStore(),
files = fs.readdirSync(testdirectory),
titles = [],
f,t,extname,basename;
for(f=0; f<files.length; f++) {
extname = path.extname(files[f]);
if(extname === ".tid") {
var tiddlers = tiddlerInput.parseTiddlerFile(fs.readFileSync(path.resolve(testdirectory,files[f]),"utf8"),extname);
if(tiddlers.length > 1) {
throw "Cannot use .JSON files";
}
2011-12-07 13:18:07 +00:00
store.addTiddler(new Tiddler(tiddlers[0]));
titles.push(tiddlers[0].title);
}
2011-12-07 13:18:07 +00:00
}
2011-12-07 13:18:07 +00:00
for(t=0; t<titles.length; t++) {
var tree = store.getTiddler(titles[t]).getParseTree(),
2011-12-09 08:59:49 +00:00
htmlRender = tree.render("text/html",store,titles[t]),
2011-12-07 13:18:07 +00:00
htmlTarget = fs.readFileSync(path.resolve(testdirectory,titles[t] + ".html"),"utf8"),
2011-12-09 08:59:49 +00:00
plainRender = tree.render("text/plain",store,titles[t]),
2011-12-07 13:18:07 +00:00
plainTarget = fs.readFileSync(path.resolve(testdirectory,titles[t] + ".txt"),"utf8");
if(htmlTarget !== htmlRender) {
2011-12-09 08:59:49 +00:00
console.error("Tiddler %s html error\nTarget: %s\nFound: %s\n",titles[t],htmlTarget,htmlRender);
2011-12-07 13:18:07 +00:00
}
if(plainTarget !== plainRender) {
2011-12-09 08:59:49 +00:00
console.error("Tiddler %s plain text error\nTarget: %s\nFound: %s\n",titles[t],plainTarget,plainRender);
2011-12-07 13:18:07 +00:00
}
}