32 lines
725 B
JavaScript
32 lines
725 B
JavaScript
const path = require('path')
|
|
const { JSDOM } = require('jsdom')
|
|
|
|
async function loadDom (content) {
|
|
const dom = new JSDOM(`
|
|
<!DOCTYPE html>
|
|
<html >
|
|
<body>
|
|
${content}
|
|
</body>
|
|
<script src="file://${require.resolve('jquery')}"></script>
|
|
<script src="file://${path.join(__dirname, '../../gadjo/static/js/gadjo.js')}"></script>
|
|
<script>
|
|
jQuery(() => document.dispatchEvent(new Event("test:ready")))
|
|
</script>
|
|
</html>`, {
|
|
runScripts: 'dangerously',
|
|
resources: 'usable'
|
|
})
|
|
|
|
await new Promise((resolve, reject) => {
|
|
dom.window.document.addEventListener('test:ready', () => {
|
|
resolve()
|
|
})
|
|
})
|
|
|
|
return dom
|
|
};
|
|
|
|
module.exports = { loadDom }
|
|
|