Improved Docker for Mac support (#568)

* Exit cleanly after invalid screenshot test name

This avoids waiting forever.

* Auto-detect host IP in Docker for Mac environment

This checks all available network addresses to find one which the Selenium
container can connect to.  That way we don't have to analyze network
settings or similar to figure out the main public IP address of the machine.

* Make server less sensitive to current working directory

That way it becomes possible to run screenshotter.js from within the
Screenshotter directory, and still server all files as intended.
This commit is contained in:
Martin von Gagern
2016-11-28 00:57:53 +01:00
committed by Kevin Barabash
parent 94dad8029d
commit be96695586
2 changed files with 98 additions and 29 deletions

View File

@@ -17,11 +17,11 @@ var serveBrowserified = function(file, standaloneName) {
return function(req, res, next) {
var files;
if (Array.isArray(file)) {
files = file;
files = file.map(function(f) { return path.join(__dirname, f); });
} else if (file.indexOf("*") !== -1) {
files = glob.sync(file);
files = glob.sync(file, {cwd: __dirname});
} else {
files = [file];
files = [path.join(__dirname, file)];
}
var options = {};
@@ -41,7 +41,7 @@ var serveBrowserified = function(file, standaloneName) {
};
};
app.get("/katex.js", serveBrowserified("./katex", "katex"));
app.get("/katex.js", serveBrowserified("katex", "katex"));
app.use("/test/jasmine",
express["static"](
path.dirname(
@@ -49,20 +49,21 @@ app.use("/test/jasmine",
)
)
);
app.get("/test/katex-spec.js", serveBrowserified("./test/*[Ss]pec.js"));
app.get("/test/katex-spec.js", serveBrowserified("test/*[Ss]pec.js"));
app.get("/contrib/auto-render/auto-render.js",
serveBrowserified("./contrib/auto-render/auto-render",
serveBrowserified("contrib/auto-render/auto-render",
"renderMathInElement"));
app.get("/katex.css", function(req, res, next) {
fs.readFile("static/katex.less", {encoding: "utf8"}, function(err, data) {
var lessfile = path.join(__dirname, "static", "katex.less");
fs.readFile(lessfile, {encoding: "utf8"}, function(err, data) {
if (err) {
next(err);
return;
}
less.render(data, {
paths: ["./static"],
paths: [path.join(__dirname, "static")],
filename: "katex.less",
}, function(err, output) {
if (err) {