feat: v0.4.2 — 审查清偿:8 项修复 + setOutline API + 871 测试
修复:插件面板实例级 i18n / undo-redo 滚动保持 / shortcutHelp 卸载残留 / CSS.escape 环境崩溃 / 大纲光标按源码行号定位 / setLocale 即时刷新 / 浮动工具栏 CJK 宽度 / ko 语言包括号 新增:setOutline(isOutline) 运行时大纲 API、getRenderCacheSize 观测接口 测试:841 → 871(补 7 个事件断言、5 个配置项、修 3 处恒真断言) 工程:CI lint 阻断、build.sh npm ci、rollup 死代码清理、覆盖率阈值门禁
This commit is contained in:
@@ -3,7 +3,7 @@
|
||||
* 覆盖 Markdown 解析器的所有语法分支与安全特性
|
||||
*/
|
||||
|
||||
import { parseMarkdown, parseTokens, renderTokens, safeUrl, slugify, clearRenderCache, registerBlockHandler } from '../src/parser';
|
||||
import { parseMarkdown, parseTokens, renderTokens, safeUrl, slugify, clearRenderCache, getRenderCacheSize, registerBlockHandler } from '../src/parser';
|
||||
|
||||
describe('parseMarkdown - 基础', () => {
|
||||
test('空输入返回空字符串', () => {
|
||||
@@ -909,12 +909,18 @@ describe('parseMarkdown - v0.1.15 registerBlockHandler', () => {
|
||||
describe('parseMarkdown - 覆盖率:渲染缓存淘汰', () => {
|
||||
test('缓存超过上限触发 FIFO 淘汰', () => {
|
||||
// MAX_CACHE_SIZE = 300,填充 301 个极短文本触发淘汰(避免 CI 超时)
|
||||
clearRenderCache();
|
||||
const short = 'x';
|
||||
for (let i = 0; i < 301; i++) {
|
||||
parseMarkdown(short + i);
|
||||
}
|
||||
// 不应抛错,且至少有一次淘汰发生
|
||||
expect(true).toBe(true);
|
||||
// 缓存条目数被 FIFO 上限约束在 300,证明淘汰真实发生
|
||||
expect(getRenderCacheSize()).toBe(300);
|
||||
// 超限后再写入仍维持上限
|
||||
parseMarkdown('overflow-entry');
|
||||
expect(getRenderCacheSize()).toBe(300);
|
||||
clearRenderCache();
|
||||
expect(getRenderCacheSize()).toBe(0);
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user