test-page-loader
Version:
Simple helper for unit testing with JavaScript Testing Frameworks (e.g. Jasmine, QUnit, etc.), to load HTML pages as fixtures.
60 lines (52 loc) • 1.45 kB
JavaScript
/* eslint-env node, es6 */
;
const
nodeStaticAlias = require('node-static-alias'),
log4js = require('log4js'),
http = require('http'),
DOC_ROOT = __dirname,
PORT = 8080,
logger = (() => {
log4js.configure({
appenders: {
out: {
type: 'console',
layout: {
type: 'pattern',
pattern: '%[[%r]%] %m' // Super simple format
}
}
},
categories: {default: {appenders: ['out'], level: 'info'}}
});
return log4js.getLogger('node-static-alias');
})(),
staticAlias = new nodeStaticAlias.Server(DOC_ROOT, {
cache: false,
headers: {'Cache-Control': 'no-cache, must-revalidate'},
alias: [
{
match: '/test-page-loader.js',
serve: '../test-page-loader.js',
allowOutside: true
}
],
logger
});
http.createServer((request, response) => {
request.addListener('end', () => {
staticAlias.serve(request, response, error => {
if (error) {
response.writeHead(error.status, error.headers);
logger.error('(%s) %s', request.url, response.statusCode);
if (error.status === 404) {
response.end('Not Found');
}
} else {
logger.info('(%s) %s', request.url, response.statusCode);
}
});
}).resume();
}).listen(PORT);
console.log(`START: http://localhost:${PORT}/\nROOT: ${DOC_ROOT}`);
console.log('(^C to stop)');