Files
connectai/test6.js
T

38 lines
1.1 KiB
JavaScript

const Module = require('module');
const originalRequire = Module.prototype.require;
Module.prototype.require = function(request) {
if (request === 'vscode') return { window: {}, workspace: {}, Uri: {}, EventEmitter: class {} };
return originalRequire.apply(this, arguments);
};
const ext = require('./out/extension');
// Try calling _getHtml
let html;
try {
html = ext.ConnectAIPanel.prototype._getHtml.call({_getHtml: ext.ConnectAIPanel.prototype._getHtml});
} catch(e) {
console.log("Could not call _getHtml directly:", e.message);
// Alternative: match from the original code and eval it
const fs = require('fs');
const code = fs.readFileSync('out/extension.js', 'utf8');
const match = code.match(/_getHtml.*?_getHtml\(\)\s*\{\s*return\s+(`(?:[^`]|\\`)*`);?/m);
if (match) {
html = eval(match[1]);
}
}
if (!html) {
console.log("Failed to get html");
process.exit(1);
}
const fs = require('fs');
fs.writeFileSync('test_eval2.html', html);
const {JSDOM} = require('jsdom');
try {
new JSDOM(html, {runScripts:'dangerously'});
console.log("JSDOM OK");
} catch(e) {
console.log("JSDOM FATAL ERROR:", e.message);
}