joyent-portal/frontend/test/_hook.js

40 lines
1019 B
JavaScript

const hook = require('node-hook');
const jsdom = require('jsdom');
const register = require('babel-register');
const requireHacker = require('require-hacker');
hook.hook('.png', () => '');
hook.hook('.eot', () => '');
hook.hook('.woff', () => '');
hook.hook('.woff2', () => '');
hook.hook('.ttf', () => '');
hook.hook('.svg', () => '');
hook.hook('.css', () => '');
register({
extensions: ['.js']
});
// import ExecutionEnvironment from 'react/lib/ExecutionEnvironment';
if (!global.document || !global.window) {
global.document = jsdom.jsdom('<!doctype html><html><body></body></html>');
global.window = global.document.defaultView;
global.navigator = global.window.navigator;
}
const fakeComponentString = `
require('react').createClass({
render() {
return null;
}
})
`;
// ensure inline svgs don't throw off testing
requireHacker.global_hook('inline-svgs', (path) => {
if(path.match(/!babel-loader!svg-react-loader/)) {
return `module.exports = ${fakeComponentString}`;
}
});