marko/test/__util__/create-marko-jsdom-module.js
Taylor Hunt 0f0fd7b1f7 Clean up test noise (#1394)
* Fix warning about differing Node binaries

* Fix npm WARNings on test

* Fix chai deprecation notice

* Fix jsdom <script> parse errors

* Fix jsdom Not Implemented errors
2019-08-07 12:34:00 -07:00

57 lines
1.3 KiB
JavaScript

"use strict";
const jQuery = require("jquery");
const createBrowser = require("jsdom-context-require");
const compiler = require("../../compiler");
const globals = [
"console",
"__coverage__",
"Error",
"describe",
"before",
"after",
"beforeEach",
"afterEach",
"it"
];
const browserExtensions = {
".marko": compileMarkoModule,
".html": compileMarkoModule
};
module.exports = function(dir, html, options) {
options = options || {};
return createBrowser({
dir: dir,
html: html,
extensions: browserExtensions,
// runScripts: 'dangerously', // JSDOM 10+
beforeParse(window, browser) {
window.global = window;
window.alert = () => {};
jQuery(window);
browser.require("complain").log = (...args) =>
require("complain").log(...args);
globals.forEach(function(k) {
window[k] = global[k];
});
if (options.beforeParse) {
options.beforeParse(window, browser);
}
}
});
};
function compileMarkoModule(module, filename) {
return module._compile(
compiler.compileFile(filename, {
writeToDisk: false,
output: "vdom",
browser: true,
meta: true
}),
filename
);
}