bit-docs
Version:
The sophisticated JavaScript documentation engine.
54 lines (49 loc) • 1.18 kB
JavaScript
var Browser = require("zombie"),
connect = require("connect"),
path = require("path"),
serveStatic = require("serve-static")
;
var find = function(browser, property, callback, done){
var start = new Date();
var check = function(){
if(browser.window && browser.window[property]) {
callback(browser.window[property]);
} else if(new Date() - start < 2000){
setTimeout(check, 20);
} else {
done("failed to find "+property);
}
};
check();
};
var waitFor = function(browser, checker, callback, done){
var start = new Date();
var check = function(){
if(checker(browser.window)) {
callback(browser.window);
} else if(new Date() - start < 2000){
setTimeout(check, 20);
} else {
done(new Error("checker was never true"));
}
};
check();
};
var open = function(url, callback, done){
var server = connect().use(serveStatic(path.join(__dirname))).listen(8081);
var browser = new Browser();
browser.visit("http://localhost:8081/"+url)
.then(function(){
callback(browser, function(){
server.close();
});
}).catch(function(e){
server.close();
done(e);
});
};
module.exports = {
find: find,
waitFor: waitFor,
open: open
};