fancive_obsidian-parallel-r.../tests/direct-test-setup.js
wujunchen 0bf5ab12b1 lint: extend Biome coverage to tests/ and scripts/
Add tests/**/*.js and scripts/**/*.mjs to biome.json includes and
update npm lint scripts to cover these directories. Auto-fixed all
formatting issues in 26 files.

Change-Id: I8c2763cb9683616a8abc1484d91bf8af79bb590e
2026-04-27 19:53:35 +08:00

40 lines
1.2 KiB
JavaScript

const assert = require('assert');
const esbuild = require('esbuild');
const fs = require('fs');
const os = require('os');
const path = require('path');
const repoRoot = path.join(__dirname, '..');
const tempDir = fs.mkdtempSync(path.join(os.tmpdir(), 'parallel-reader-tests-'));
async function requireBundledModule(relativePath) {
const entry = path.join(repoRoot, relativePath);
const outfile = path.join(tempDir, relativePath.replace(/[/.]/g, '_') + '.cjs');
await esbuild.build({
entryPoints: [entry],
bundle: true,
platform: 'node',
format: 'cjs',
outfile,
plugins: [
{
name: 'obsidian-stub',
setup(build) {
build.onResolve({ filter: /^obsidian$/ }, () => ({ path: 'obsidian-stub', namespace: 'stub' }));
build.onLoad({ filter: /.*/, namespace: 'stub' }, () => ({
contents:
'module.exports = { requestUrl: async () => { throw new Error("requestUrl not available in direct module tests"); } };',
loader: 'js',
}));
},
},
],
});
return require(outfile);
}
function cleanup() {
fs.rmSync(tempDir, { recursive: true, force: true });
}
module.exports = { assert, requireBundledModule, cleanup, repoRoot, tempDir };