test: 三分類優先序契約——pill 行為覆蓋 isolate(兩端補隙同口徑、雙命中 pill 勝出)
實證後鎖定契約:pill 與 isolate 之邊界口徑完全相同(同一段 processPills 邊界處理, 兩端補隙/斷 run/斷相鄰/不可切分),差異僅在內部(pill 不可見、isolate 照常); 同一元素同時命中兩選擇器時 pill 語義勝出(collectRuns/jiyaAdjacency 均 pill 先判)。 新增契約測試(113 全綠);README 三分類要點+types.ts 選項註記補優先序說明。
This commit is contained in:
@@ -1093,6 +1093,17 @@ test("isolate revert:mark 整綁+邊界間隙還原——DOM 回原樣", ()
|
||||
assert.equal(document.querySelector("p").innerHTML, before, "render→revert 還原一致(I6)");
|
||||
});
|
||||
|
||||
test("三分類優先序:pill 行為覆蓋 isolate——兩端補隙同口徑,雙選擇器同命中時 pill 勝出", () =>
|
||||
{
|
||||
// pill 之邊界口徑=isolate(兩端補隙),差異僅在內部;同一元素同時命中
|
||||
// pillSelector 與 isolateSelector 時,pill 語義(內部不可見)勝出。
|
||||
const { document } = setupDom('<p lang="zh-Hans">前文<mark class="x">內,文</mark>後文</p>');
|
||||
createJuzhen({ pillSelector: ".x", isolateSelector: "mark", jinze: false })
|
||||
.render(document.body);
|
||||
assert.equal(countTag(document.body, "jz-hws"), 2, "兩端各一間隙(同 isolate 口徑)");
|
||||
assert.equal(countTag(document.body, "mark jz-char"), 0, "內部不可見(pill 勝出,標點不 charify)");
|
||||
});
|
||||
|
||||
// ----- v1 相容層移除 -----
|
||||
|
||||
test("v1 相容層已移除:createCjkAutospace 不再導出(消費端已全數遷移 v2 API)", async () =>
|
||||
|
||||
Reference in New Issue
Block a user