update
This commit is contained in:
@@ -136,6 +136,33 @@ check('defaultDataDir: D 盘可用时首选 D 盘(契约保留)', () => {
|
||||
}
|
||||
});
|
||||
|
||||
// ---------- main.js 源码级契约:兜底状态下 openDb/openFavDb 不能 mkdir 坏目录 ----------
|
||||
// 启动时 dataDir 不可用会切到 sessionDataDir 兜底,但 openDb/openFavDb 如果
|
||||
// mkdir 的是裸 appConfig.dataDir(坏目录),mkdirSync 直接抛 ENOENT ——
|
||||
// 兜底逻辑被这一行废掉,照样弹「启动失败」。pin 住:两个函数都必须 mkdir
|
||||
// effectiveDataDir()(含 session 兜底)。
|
||||
{
|
||||
const mainSrc = fs.readFileSync(path.join(__dirname, '..', 'main.js'), 'utf8');
|
||||
const openDbFn = mainSrc.match(/function openDb\(\) \{[\s\S]*?\n\}/);
|
||||
const openFavDbFn = mainSrc.match(/function openFavDb\(\) \{[\s\S]*?\n\}/);
|
||||
|
||||
check('openDb mkdir effectiveDataDir()(含 session 兜底),不是裸 appConfig.dataDir', () => {
|
||||
assert.ok(openDbFn, '找不到 openDb 函数');
|
||||
assert.ok(
|
||||
/mkdirSync\(\s*effectiveDataDir\(\s*\)/.test(openDbFn[0]),
|
||||
'openDb 仍在 mkdir appConfig.dataDir —— 配置目录不可用时兜底失效,启动照样失败'
|
||||
);
|
||||
});
|
||||
|
||||
check('openFavDb mkdir effectiveDataDir()(含 session 兜底),不是裸 appConfig.dataDir', () => {
|
||||
assert.ok(openFavDbFn, '找不到 openFavDb 函数');
|
||||
assert.ok(
|
||||
/mkdirSync\(\s*effectiveDataDir\(\s*\)/.test(openFavDbFn[0]),
|
||||
'openFavDb 仍在 mkdir appConfig.dataDir —— 配置目录不可用时兜底失效,启动照样失败'
|
||||
);
|
||||
});
|
||||
}
|
||||
|
||||
// 清理
|
||||
fs.rmSync(tmpHome, { recursive: true, force: true });
|
||||
console.log(`\n${passed} checks passed`);
|
||||
Reference in New Issue
Block a user