fancive_obsidian-parallel-r.../tests/obsidian-mock.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

52 lines
1.1 KiB
JavaScript

/**
* Shared obsidian module mock for all test files.
* Must be require()'d before any module that imports 'obsidian'.
*/
const Module = require('module');
const originalLoad = Module._load;
let requestUrlMock = async () => ({ status: 200, json: {}, text: '{}' });
Module._load = function load(request, parent, isMain) {
if (request === 'obsidian') {
class Plugin {}
class ItemView {
constructor(leaf) {
this.leaf = leaf;
this.containerEl = { children: [{}, {}] };
}
}
class PluginSettingTab {}
class Setting {}
class Notice {}
class MarkdownView {}
class TFile {}
class Menu {}
class Modal {}
return {
Plugin,
ItemView,
PluginSettingTab,
Setting,
Notice,
MarkdownView,
TFile,
Menu,
Modal,
MarkdownRenderer: { render: async () => {} },
requestUrl: (params) => requestUrlMock(params),
setIcon: () => {},
};
}
return originalLoad.call(this, request, parent, isMain);
};
module.exports = {
getRequestUrlMock() {
return requestUrlMock;
},
setRequestUrlMock(fn) {
requestUrlMock = fn;
},
};